1. 程式人生 > >python匿名函數 高階函數 內置函數 文件操作

python匿名函數 高階函數 內置函數 文件操作

ret 依次 -s 語法 輸出結果 使用 style 返回值 就是

1.匿名函數

匿名就是沒有名字
def func(x,y,z=1):
    return x+y+z

匿名
lambda x,y,z=1:x+y+z #與函數有相同的作用域,但是匿名意味著引用計數為0,使用一次就釋放,除非讓其有名字
func=lambda x,y,z=1:x+y+z 
func(1,2,3)
#讓其有名字就沒有意義

#有名函數與匿名函數的對比
有名函數:循環使用,保存了名字,通過名字就可以重復引用函數功能

匿名函數:一次性使用,隨時隨時定義

應用:map,reduce,filter

語法格式:
匿名函數 形參1,形參2,:處理邏輯

# !/usr/bin/python env
# coding:utf-8
from functools import reduce

print(list(map(lambda x: x ** 2, range(11)))) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

print(reduce(lambda x, y: x * y, range(1, 11))) # 3628800

print(list(filter(lambda x: x % 2 == 0, range(11)))) # [0, 2, 4, 6, 8, 10]

print(list(i for i in range(11) if i % 2 == 0)) # [0, 2, 4, 6, 8, 10]
map reduce filter語法格式:

關鍵字(函數,可叠代對象)
map 依次將可叠代對象裏元素傳入函數中進行邏輯處理,並輸出結果
reduce 將可叠代對象裏元素1,元素2傳入函數中進行邏輯處理,再將結果和元素3再傳入函數中進行邏輯處理,依次類推,最終輸出結果
filter 依次對叠代對對象中每個元素進行判定是否符合函數條件,返回TRUE或者FALSE,將返回值是True的元素輸出

python匿名函數 高階函數 內置函數 文件操作