遞推式構造列表 Python

2021-10-07 15:44:06 字數 1215 閱讀 9038

我們先定義乙個簡單的函式,它會算變數的平方並加 5:

>>

>

defstupid_func

(x):

>>

>

return x**2+

5

如果我們希望將該函式應用到列表中的奇數項,那麼不採用遞推式構造列表的情況下,我們一般會寫成以下形式:

>>

> my_list =[1

,2,3

,4,5

]>>

> new_list =

>>

>

for x in my_list:

>>

>

if x %2!=

0:>>

)>>

>

print

(new_list)[6

,14,30

]

但是現在我們有了遞推式構造列表,那麼上面**可以等價修改為:

>>

> my_list =[1

,2,3

,4,5

]>>

>

print

([stupid_func(x)

for x in my_list if x %2!=

0])[

6,14,

30]

遞推式構造列表的一般語法可以表示為[ expression for item in list ],如果你希望加上一些布林型條件語句,那麼上面的語法可以修改為[ expression for item in list if conditional ],它的結構其實和下面是等價的。

>>

>

for item in

list

:>>

>

if conditional:

>>

> expression

上面的遞推式構造列表可以進一步簡化,即不需要定義乙個新函式。

>>

>

print

([x **2+

5for x in my_list if x %2!=

0])[

6,14,

30]

python列表推導式

a 1,2,3,4,5,6,7 將每個元素求平方 加入到b列表中 1.列表解析 b x 2 for x in a print b 2.用map實現 c map lambda x x 2,a print list c 3.用迴圈實現 d for x in a print d 將a中的偶數求立方加入到新...

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 但...

python列表生成式

全都是重點!列表生成式即listcomprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。舉個例子,要生成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 但如果要生成...