我們先定義乙個簡單的函式,它會算變數的平方並加 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 但如果要生成...