2018 6 23 學習日誌 列表生成式

2021-08-20 22:08:11 字數 1355 閱讀 9692

在慕課網上學習了廖雪峰老師的《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...