已经一个列表 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 我们想得到 [1 * 1, 2 * 2, 3 * 3, …, 10 * 10], 此时, 借助列表生成式可以很方便的实现:
[x * x for x in range(1, 11)]
[x * x for x in range(1, 11)] 就是一个列表生成式, 它的基础语法是:
[exp for iter_var in iterable]
首先迭代 iterable 里所有内容, 每一次迭代, 都把 iterable 里相应内容放到 iter_var 中, 再在表达式 exp 中应用该 iter_var 的内容, 最后用表达式的计算值生成一个新的列表.
除了基础语法外, 列表生成式还可以使用两层循环:
L = [(x, y) for x in range(2) for y in range(