在慕課網上學習了廖雪峰老師的《python入門》然後進行總結
**:1.
生成列表
要生成list[1,2,3,4],我們可以用list(range(1,5))
>>> list(range(1,5))
[1, 2, 3, 4]
如果要生成[1*1,2*2,3*3,4*4]該怎麼做呢?
一般來說我們都會想到利用迴圈
>>>ls=
>>> for i in range(1,5):
>>> print(ls)
[1, 4, 9, 16]
這樣子太繁瑣,引出了列表生成式:
利用列表生成式解決上面的問題:
>>> [x*x for x in range(1,5)]
[1, 4, 9, 16]
做個一練習:
請利用列表生成式生成列表 [1x2, 3x4, 5x6, 7x8, …, 99x100]
>>>print([x*(x+1) for x in range(1,100,2)])
[2, 12, 30, 56, 90, 132, 182, 240, 306, 380, 462, 552, 650, 756, 870, 992, 1122, 1260, 1406, 1560, 1722, 1892, 2070, 2256, 2450, 2652, 2862, 3080, 3306, 3540, 3782, 4032, 4290, 4556, 4830, 5112, 5402, 5700, 6006, 6320, 6642, 6972, 7310, 7656, 8010, 8372, 8742, 9120, 9506, 9900]
2.條件過濾
列表生成式的 for 迴圈後面還可以加上 if 判斷。例如:
如果我們只想要偶數的平方,不改動 range()的情況下,可以加上 if 來篩選:
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
只有if為true的時候,才把迴圈的當前元素新增到列表當中
3.多層表示式
for迴圈可以巢狀,因此,在列表生成式中,也可以用多層 for 迴圈來生成列表。
>>> [m + n for m in
'abc'
for n in
'123']
['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3']
python學習 列表生成式
列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。舉個例子,要生成list 1,2,3,4,5,6,7,8,9,10 可以用list range 1,11 list range 1,11 1,2,3,4,5,6,7,8,9,10 但...
列表生成式,列表生成器
coding utf 8 列表生成式是快速生成乙個列表一些公式 numbers for x in range 0,101 print numbers 要放入列表資料 簡單的表示式 1 表示式 2 x for x in range 0,101 for 迴圈遍歷出來的值,放入列表中 numbers x ...
python學習筆記 列表生成式
迭代 iterable 可迭代的 可以for迴圈 s hello for i in s print i from collections import iterable print isinstance 1,int print isinstance 1,iterable print isinstan...