初學 Python 筆記【三十三】lambda函式
阿新 • • 發佈:2020-08-16
lambda函式也叫匿名函式,函式沒有具體的名稱。
語法:lambda argument_list: expression
- argument_list是引數列表,相當於函式定義中的引數列表def(a, b=1, *args, **kwargs)
- expression是關於引數的表示式。相當於函式中的函式體,並且表示式只能是單行的,可以為None
部分Python內建函式接收函式作為引數
filter函式。此時lambda函式用於指定過濾列表元素的條件。print(list(filter(lambda x: x % 3 == 0, [1, 2, 3])))指定將列表[1,2,3]中能夠被3整除的元素過濾出來,
print(sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x)))將列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素與5距離從小到大進行排序, 結果是[5, 4, 6, 3, 7, 2, 8, 1, 9]。
map函式。此時lambda函式用於指定對列表中每一個元素的共同操作。
print(map(lambda x: x+1, [1, 2,3]))將列表[1, 2, 3]中的元素分別加1, 結果是[2, 3, 4]。
reduce函式。此時lambda函式用於指定列表中兩兩相鄰元素的結合條件。
from functools import reduce print(reduce(lambda a, b: '{}, {}'.format(a, b), [1, 2, 3, 4, 5]))將列表 [1, 2, 3, 4, 5]中的元素從左往右兩兩以逗號分隔的字元的形式依次結合起來, 結果是'1, 2, 3, 4, 5'。 注意:reduce()函式在python2是內建函式,從python3開始移到了 functools 模組。