標籤:fun 根據 style color ted int bsp rabl menu
一、知識要點all 都為真any 有真的min 最小的max 最大的sum 求和reversed 反轉sorted 排序zip 對應合并[] 列表推倒式() 產生器{} 字典推倒式set 去重if三元操作符 xx if x else yennmerate 枚舉,帶索引 二、 代碼
"1. all"# 參數為一個可迭代的對象(Iterable)m =[1, 2, 3, 4, ‘‘] # 當然不是這樣簡答的使用print(all(m))def a1(): # 完成一系列操作 return Falsedef a2(): # 完成一系列操作 return Truedef a3(): # 完成一系列操作 return Trueif 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 與 reveredprint(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進階內建函數和各種推導式的介紹:一行搞定的代碼