列表推导式
有时,通过算法生成列表很有用。 请思考上一单元中的代码示例,在该示例中,我们只是想要一个从 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 代码。