要求:生成一个 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 列表。
y = [] for x in range(1, 11): y.append(x * x)
这是一种写法,但是较为繁琐。而 列表生成式 是 Python 中用来快速生成想要的列表的一种简便方式。同样的功能,使用列表生成式只需要一行代码:
[x*x for x in range(1,11)]
写 列表生成式 时,把要生成的元素 x * x(这个表达式可以自定义)放到前面,后面加一个 for 循环,就可以快速生成我们期望的列表,十分简便。
我们甚至还可以在 for ... in … 后加上条件判断:
# 筛选出奇数的平方 y = [x * x for x in range(1, 11) if x % 2 == 1] print(y) # 输出:[1, 9, 25, 49, 81]
One more example:
Select all the numbers which is less than 60.
scores = [91, 4, 20, 67, 24, 13, 84, 40, 77, 47]
print([i for i in scores if i <60])