一、生成列表
要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我們可以用range(1, 11):
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎麼做?方法一是 迴圈:
l=for x in range(1,11):
但是迴圈太繁瑣,而列表生成式則可以用一行語句代替 迴圈生成上面的list:
[x*x for x in range(1,11)]
這種寫法就是python特有的列表生成式。利用列表生成 式,可以以非常簡潔的**生成 list。
寫列表生成式時,把要生成的元素 x * x 放到前面,後面 跟 for 迴圈,就可以把list建立出來,十分有用。
二、條件過濾
列表生成式的 for 迴圈後面還可以加上 if 判斷。例如:
如果我們只想要偶數的平方,不改動 range()的情況下, 可以加上 if 來篩選:
[x*x for x in range(1,11) if x %2 ==0]
三、多層表示式
for迴圈可以巢狀,因此,在列表生成式中,也可以用多 層 for 迴圈來生成列表。 對於字串 'abc' 和 '123' ,可以使用兩層迴圈,生成全排 列:
[m+n for m in 'abc' for n in '123']
Python之列表生成式
列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。1 生成list 1,2,3,4,5,6,7,8,9,10 print list range 1,11 2 生成 1x1,2x2,3x3,10x10 方法一 用迴圈 l for x ...
python之列表生成式
生成乙個 1 1,2 2,3 3,4 4,10 10 的列表 方法一l1 for i in range 1,11 print l1 2,4,6,8,10,12,14,16,18,20 方法二l2 x x for x in range 1,11 print l2 2,4,6,8,10,12,14,16...
python六之列表生成式
在python中,我們可以利用range使列表更快捷的生成一些資料,例如 執行a i for i in range 1,18 生成a 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 執行a 11 for i in range 1,18 for後面沒有冒號!生成...