1. 程式人生 > >Python的lambda

Python的lambda

普通 序列 sharp ret a + b div .com info func

if else 可以用簡單的三元運算符表示

if 1 == 1:
    name = ‘wupeiqi‘
else:
    name = ‘alex‘

--》

name = ‘wupeiqi‘ if 1 == 1 else ‘alex‘

對於函數也可以lambda來簡化表達

# ###################### 普通函數 ######################
# 定義函數(普通方式)
def func(arg):
    return arg + 1
  
# 執行函數
result = func(123)
  
# ###################### lambda ######################
  
# 定義函數(lambda表達式)
my_lambda = lambda arg : arg + 1
  
# 執行函數
result = my_lambda(123)  

內置函數

1,map

遍歷序列,對序列中每個元素進行操作,最終獲取新的序列。

技術分享圖片

li = [11, 22, 33]
new_list1 = map(lambda a: a + 100, li)
print new_list1

[111, 122, 133]

li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: 2*a + b, li, sl)
print new_list

[23, 46, 69]

2,filter

對於序列中的元素進行篩選,最終獲取符合條件的序列

技術分享圖片

li = [11, 22, 33]
new_list2 = filter(lambda arg: arg >= 22, li)
print new_list2

[22, 33]

3,reduce

對於序列內所有元素進行累計操作

技術分享圖片

技術分享圖片

li = [11, 22, 33]
sl = [1, 2, 3]
result = reduce(lambda arg1, arg2: arg1 + arg2, li)
print result
# reduce的第一個參數,函數必須要有兩個參數
# reduce的第二個參數,要循環的序列
# reduce的第三個參數,初始值

66

Python的lambda