lambda, map,filter的詳解
阿新 • • 發佈:2018-12-16
add=lambda x,y:x+y
print(add(1,2))
#3
用lambda編寫一個加法函式。
def add2(x):
return x+2
map(add2,[1,2,3,4])
#[3,4,5,6]
map對list中的每個元素執行函式add2(),並且函式返回函式些該之後的list
map(lambda x:x+2,[1,2,3,4])
#[3,4,5,6]
用lambda重寫上述函式。
dict_a=[ {'name':'python','points':10}, {'name':'java','points':8} ] map(lambda x:x['name'],dict_a) #[python,java] map(lambda x:x['points'],dict_a) #[10,8] map(lambda x:x['name']=='python',dict_a) #[True,False]
map,是惰性迭代器,我們不能用index,len去訪問map,但是可以將map強制轉換為list,再去打印出結果;
list_a=[1,2,3]
list_b=[10,20,30]
map_ab=map(lambda x,y:x+y,list_a,list_b)
print(list(map_ab))
filter相當於過濾器,篩選出符合函式的元素,function會返回一個布林值。
a=[1,2,3,4,5,6,7,8]
filter(lambda x:x%2==0,a)
返回偶數
dict_a=[ {'name':'python','points':10}, {'name':'java','points':8} ] a=filter(lambda x:x['name']=='python',dict_a) print(list(a))
只保留name='python'的一列。