列表推导式

已完成

有时,通过算法生成列表很有用。 请思考上一单元中的代码示例,在该示例中,我们只是想要一个从 1 到 10 的数字列表。 你可使用“列表推导式”来生成这些数字,而不用明确键入它们:

numbers = [x for x in range(1,11)] # Remember to specify a range stop value that's 1 more than the number you want.
numbers

输出为:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

还可对为列表生成的项进行计算:

squares = [x*x for x in range(1,11)]
squares

输出为:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

甚至可对推导式中的列表项进行逻辑测试:

odd_squares = [x*x for x in range(1,11) if x % 2 != 0]
odd_squares

输出为:

[1, 9, 25, 49, 81]

亲自试一试

使用列表推导式生成一个从 1 到 2,197 的奇数多维数据集列表。


提示 (展开以显示)
odd_cubes = [x*x*x for x in range(1, 2197) if x % 2 != 0]
odd_cubes
[1,
 27,
 125,
 343,
 729,
 1331,
 2197,
 3375,
 4913,
 ...]




要点

列表推导式在 Python 中很常用,因为它们支持以编程方式快速生成列表。 这种经济和易用性使它们成为你必不可少的工具。 此外,它们还是你要掌握的一个必要主题,便于你能理解其他人编写的 Python 代码。