無名字的函數 用lambda :表示python
:左邊是參數,右邊是返回值函數
函數的調用時須要函數名+()由於匿名函數沒有名字,因此無法調用只能一次性使用code
匿名函數單獨使用沒有意義,須要配合內置函數一塊兒使用纔有意義對象
python內部提供的內置方法,如:print(), len(), range(), max(), min(), sorted(), map(), filter()排序
max(可迭代對象) 求最大值字符串
字符串比較的是ASCIIit
# 求列表l1中的最大值 l1 = [10, 2, 5, 1, 4] print(max(l1))
# 求字典中薪資最高的人 dict1 = { 'tank': 1000, 'egon': 500, 'sean': 200, 'jason': 800 } print(max(dict1, key=lambda x:dict1[x])) >>> tank
min(可迭代對象) 求最小值class
字符串比較的是ASCIIimport
# 求字典中薪資最低的人 dict1 = { 'tank': 1000, 'egon': 500, 'sean': 200, 'jason': 800 } print(min(dict1, key=lambda x:dict1[x])) >>> sean
# 將字典中薪資排序 dict1 = { 'tank': 1000, 'egon': 500, 'sean': 200, 'jason': 800 } # 升序 print(sorted(dict1, key=lambda x: dict1[x])) # 降序 print(sorted(dict1, key=lambda x: dict1[x], reverse=True))
map() :映射匿名函數
語法:map(函數地址,可迭代對象) ---->>獲得map對象
map會將可迭代對象中的值遍歷取出,而後按照指定的規則映射到一個map對象中
能夠將map對象轉換到列表或者元組中,只能轉一次
res = map(lambda x: x, range(5)) print(res) # 獲得map對象>>>><map object at 0x000001374A5C13C8> print(list(res)) # 將map對象放到列表中>>>[0, 1, 2, 3, 4] print(tuple(res)) # 只能轉一次>>>()
# 將list1中tank後綴加上"_生蠔",其餘元素中後綴加上"DS" list1 = ['tank', 'jason', 'sean', 'egon'] res = map(lambda x: x+'生蠔' if x == 'tank' else x + 'DS', list1) # res是map對象 print(tuple(res)) >>> ('tank生蠔', 'jasonDS', 'seanDS', 'egonDS')
reduce():合併
須要從functools包中調用from functools import reduce
語法:reduce(函數地址,可迭代對象,初始值默認爲None)
將可迭代對象的值兩兩進行合併,並初始值能夠修改
from functools import reduce # 調用reduce模塊 # 求0-5的和 # 普通方法 num = 0 for i in range(5): num += i print(num) # reduce方法 res = reduce(lambda x, y: x+y, range(5)) # 初始值默認爲None print(res) # 10 res = reduce(lambda x, y: x+y, range(5),100) # 初始值爲100 print(res) # 110 res = reduce(lambda x, y: x*y, range(1, 5)) # 初始值默認爲None print(res) # 24
filter():過濾
語法:filter(函數地址,可迭代對象) ----->>獲得filter對象
將可迭代對象中的值遍歷取出,而後經過判斷,filter會將函數中返回的結果爲True 對應 的參數值 「過濾出來」,添加到filter對象中
能夠將filter對象轉換到列表或者元組中,只能轉一次
# 將結尾是DS的名字過濾出來 t = ('tank生蠔', 'jasonDS', 'seanDS', 'egonDS') res = filter(lambda x:x.endswith('DS'), t) # filter對象 print(res) # filter對象<filter object at 0x00000240FD29CA08> print(list(res)) # 將filter對象轉到列表中['jasonDS', 'seanDS', 'egonDS']