1. 程式人生 > >python高級內置函數和各種推導式的介紹:一行搞定的代碼

python高級內置函數和各種推導式的介紹:一行搞定的代碼

內置 轉換 map sort 合並 ret bsp nbsp 去重

一、知識要點

all 都為真 any 有真的 min 最小的 max 最大的 sum 求和 reversed 反轉 sorted 排序 zip 對應合並 [] 列表推倒式 () 生成器 {} 字典推倒式 set 去重 if三元操作符 xx if x else y ennmerate 枚舉,帶索引

二、 代碼

"1. all"
# 參數為一個可叠代的對象(Iterable)
m =[1, 2, 3, 4, ‘‘]  # 當然不是這樣簡答的使用
print(all(m))

def a1():
    # 完成一系列操作
    return
False def a2(): # 完成一系列操作 return True def a3(): # 完成一系列操作 return True if all([not a1(),a2(),a3()]): # 前一個為假,最後為真運行這裏 print(are u ok) "2. any" # 只要有真的就運行,參數也是一個可叠代的對象 print(any([0,‘‘, ])) # True "3. min,max" print(min([10,2,3,4,5])) print(max([10,2,3,4,5]))
"4. sum" # 兩個參數:第一個參數可叠代的對象數組,第二個參數為前面累加和 再加上這個參數,當第一個參數為空,直接返回第二個參數 print(sum(range(100),10)) "5. reversed" # 對一個序列進行反轉,返回一個可叠代的對象 li_m = [123,32,234,2123,43,12,53] for i in reversed(li_m): print(i) [i for i in reversed(li_m)] # 使用列表推倒式一行搞定 "6. sorted排序" # 默認的列表排序 li_m = [123,32,234,2123,43,12,53] li_m.sort()
# 有兩個參數 key 與 revered print(li_m) # sorted 是返回一個新列表 new_li = sorted([1,34,123,111,23]) print(new_li) new_li = sorted([-1,-3,-9,2,4], key=abs) # 根據絕對值進行排序,也可以使用lambda排序 print(new_li) "7. zip" # 拉鏈,合並兩個序列(一一對應) x = [1,2,3,4,5] y = [a, b, c] print(list(zip(x, y))) print(dict(zip(x,y))) "8. 推倒式" # 列表推倒-->也可以使用map推到,但是比較麻煩 print([x for x in range(10)]) print([x*100 for x in range(10)]) # 生成器表達式----> 優先使用這個,節約內存 print((x**3 for x in range(8))) for i in (x**3 for x in range(8)): print(i) # 字典推導式 # 把下面的v轉換為大寫 info = {louhui:hz,laoniu:hengxi,caoyu:dongwu} # 1,常規做法 info_new = {} for k,v in info.items(): info_new[k] = v.upper() print(info_new) # 2. 字典推到 a = {k:v.upper() for k,v in info.items()} print(a) "9. 去重" s = [1,2,2,2,33,43,3,3,3,] ss = set(s) print(ss) "10. 三元操作符" # 前面是返回值,如何為真,則用前面,為假則為後面的值 True if s == a else False # 一般用在函數的返回值 def func(s): # many return True if s ==a else False "11. 枚舉" # 就是給列表加上下表 menu = [add, del, modfiy, find] for num, m in enumerate(menu): print(num+1,m)

python高級內置函數和各種推導式的介紹:一行搞定的代碼