1. 程式人生 > >匿名函數與內置函數(python3入門)

匿名函數與內置函數(python3入門)

cto 使用 python3 元素 turn 比較 字典 產生 true

 1 #匿名函數:沒有名字的函數,只有函數的內存地址,只能用一次就被回收
 2 # lambda x,y:x>y #當表達式執行完畢後,自動return值
 3 # 更多情況下,匿名函數都是和其他函數配合到一起使用
 4 
 5 
 6 from functools import reduce
 7 
 8 salaries = {
 9     egon:3000,
10     alex:100000,
11     wuxx:2000,
12     yuanhao:40000
13 }
14 
15 # print(max(salaries,key=lambda x:salaries[x]))   #max函數比較的是key中的表達式,而在比較出最大值後,return了字典的key
16 # print(min(salaries,key=lambda y:salaries[y])) 17 18 # print(sorted(salaries,key=lambda x:salaries[x])) #類似max函數,比較的是字典的value,返回了一個從小到大的人名 19 # print(sorted(salaries,key=lambda x:salaries[x],reverse=True)) #類似max函數,比較的是字典的value,返回了一個從大到小的人名 20 21 22 # filter() 23 24 25 26 27 28 29
# map() #映射,按照某種映射規則產生新的值 30 # names = [‘alex‘,‘wxx‘,‘egon‘] 31 # res = map(lambda x:‘%s_sb‘%x,names) 32 # print(res,type(res)) #map返回一個叠代器對象 33 # print(list(res)) #可以通過list來調出叠代器對象中的值 34 # print([‘%s_sb‘%name for name in names]) #使用列表生成器打印新列表的內容 35 # print(‘%s_sb‘%name for name in names) #使用列表生成器同樣可以實現上述需求
36 37 # reduce() #合並字符串/數字相加 38 # res = reduce(lambda x,y:x+y,range(1,101)) #1~100數字兩兩相加 39 # print(res) 40 41 #filter 42 43 # names = [‘alex_sb‘,‘wxx_sb‘,‘egon‘,‘old_sb‘] 44 # res = filter(lambda x:x.endswith(‘sb‘),names) 45 # print(res) 46 # print(list(res)) #遍歷names列表,過濾出以sb結尾的元素,組成一個新列表 47 # 48 # print([name for name in names if name.endswith(‘sb‘)]) #列表生成式也可以搞定

匿名函數與內置函數(python3入門)