python列表解析高階

2022-05-17 19:23:22 字數 452 閱讀 3485

如果要獲得乙個(元素為整數的)列表裡面的偶數,很容易想到列表解析:

[i for i in nums if i%2==0]

但是如果要使列表的長度不變,讓奇數用0來填充,可能你會直接寫:

[i for i in nums if i%2==0 else 0]

那就錯了,這是lambda函式的寫法,拿到這邊就有問題了。

但是有兩種方法實現:

首先使用lambda來定義乙個f,再將f作用在每個i上:

f = lambda x: x if x%2==0 else

0[f(i)

for i in nums]

另一種做法:

[ i%2==0 and i or 0 for i in nums]

相當於 if i%2==0 則 i 否者 0

python列表解析

列表解析是乙個列表對映出另乙個列表,它的基本形式是乙個方括號裡面包含乙個for語句對乙個iterable物件迭代 expression for target1 in iterable1 if condition1 for targetn in iterablen if conditionn 上面是列...

python 列表解析

m 1,2,3 4,5,6 7,8,9 col2 row 1 for row in m 獲取列表m的每個元素的第二個元素的值組成的列表 print col2 print row 1 1 for row in m 獲取列表m的每個元素的第二個元素 1的值組成的列表 print row 1 for ro...

Python列表解析

語法 1.expression for iter val in iterable 2.expression for iter val in iterable if cond expr l i 2 for i in range 1,11 print l 1,4,9,16,25,36,49,64,81,...