python函式之匿名函式和麵向過程程式設計
阿新 • • 發佈:2021-07-05
匿名函式
什麼是匿名函式?
匿名函式就是沒有名字的函式
為何要用匿名函式?
用於臨時使用一次的場景
如何定義匿名函式
lambda 引數 :返回值
有名函式與匿名函式的對比
有名函式:迴圈使用,儲存了名字,通過名字就可以重複引用函式功能
匿名函式:一次性使用,隨時隨時定義
匿名函式一般與內建函式搭配使用:max,min,sorted,map,reduce,filter等內建函式
下面以薪資為例將匿名函式與max、min、sorted配合使用講解下
salaries = { "axx": 30000000, "bgon": 3000, "zxx": 1000 } print(max(salaries,key=lambda name:salaries[name])) # 與max最大值配合使用 print(min(salaries,key=lambda name:salaries[name])) # 與min最小值配合使用 print(sorted(salaries,key=lambda name:salaries[name])) # 與sorted排序配合使用,從小到大排序value
匿名函式與reduce配合使用
函式的作用是將一個序列歸納為一個輸出 from functools import reduce #先從functools模組中匯出reduce功能函式 reduce(function, sequence, startValue) 函式名 按照一個條件 初始值 from functools import reduce #先從functools模組中匯出reduce功能函式 res = reduce(lambda x, y: x + y, [1, 2, 3, 4],10) #數字求和 res = reduce(lambda x, y: x + y, ["a", "b", "c", "d"], "xxx") #字串拼接 print(res)
匿名函式與map配合使用
新增某種條件對映成一個新列表
names = ['lxx', "hxx", "wxx"]
res = map(lambda name:name+"_vip",names)
print(res)
匿名函式與filter配合使用
過濾出想要的東西
names = ['lxx', "hxx_vip", "wxx_vip"]
res=filter(lambda name:name.endswith('_vip'),names)
print(res)
面向過程程式設計
什麼是面向過程程式設計 面向過程的核心是過程二字,過程指的是解決問題的步驟,即先幹什麼再幹什麼 基於面向過程設計程式就好比在設計一條流水線,是一種機械式的思維方式 優點:複雜的問題流程化,進而簡單化 缺點:可擴充套件性差,修改流水線的任意一個階段,都會牽一髮而動全身 應用:擴充套件性要求不高的場景,典型案例如linux核心,git,httpd