生成列表的方法有:
1. 使用range:
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range(1, 100, 2) 可以生成list [1, 3, 5, 7, 9,...]
2. 使用for,以及append()方法
3. 最重要的列表生成式:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
x*x表明要生成的值和x的关系,range表示x取值范围。
上面的例子中,还可以加if语句来筛掉特定的元素:
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
有了 if 条件,只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。
列表生成式也可以使用套嵌:
对于字符串 'ABC' 和 '123',可以使用两层循环,生成全排列:
>>> [m + n for m in 'ABC' for n in '123'] ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']