0%

【Python】使用列表生成式生成List列表

若要生成list[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]有几种方法呢? 常见的方法有: 1.直接赋值

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

2.使用函数

>>> list=range(1, 11)

3.使用列表生成式

>>> [x for x in range(1, 11)]

好像没太方便呵,但如果要生成[1x1, 2x2, 3x3, …, 10x10]怎么做?

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

这就看出列表生成式的方便了。 具体用法是 [ 生成列表内的值(由迭代值进行某种变换得到的值) for 迭代值 in 内涵迭代值的列表 ] 另有 1.带条件过滤的列表生成式,如

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

(只输出1~10偶数的平方) 2.多层表达式

>>> [m + n for m in ‘ABC’ for n in ‘123’]
[‘A1’, ‘A2’, ‘A3’, ‘B1’, ‘B2’, ‘B3’, ‘C1’, ‘C2’, ‘C3’]

翻译过来就是这样👇

L = []
for m in ‘ABC’:
for n in ‘123’:
L.append(m + n)