Lambda和sorted組合排序列表和字典
阿新 • • 發佈:2022-03-26
Lambda和sorted組合排序列表和字典
排序列表
# 例項1 # 根據列表裡的字串中有規律的數字進行排序。 lis = ["PCR 0: Core", "PCR 9: NTFS Boot Block", "PCR 2: Option ROM Code", "PCR 10: Boot Manager", "PCR 4: Master ", "PCR 8: NTFS Boot Sector", "PCR 11: BitLocker"] print(sorted(lis, key=lambda x:int(x.split(':')[0][4:]))) ['PCR 0: Core', 'PCR 2: Option ROM Code', 'PCR 4: Master ', 'PCR 8: NTFS Boot Sector', 'PCR 9: NTFS Boot Block', 'PCR 10: Boot Manager', 'PCR 11: BitLocker'] $這裡有個點就是,數字的位數,有兩位的,所以不能去[-1] # 例項2 # sorted功能 tilst = [12, 23, 9, 1] print(sorted(tilst)) [1,9,12,23] # 例項3 # 以元素的第一個索引值去排序 lst1 = [[4,2,9],[1,5,6],[7,8,3]] print(sorted(lst1, key=lambda k:k[0])) [[1,5,6],[4,2,9],[7,8,3]] # 以元素的第二個索引值去排序 lst2 = [[4,2,9],[1,5,6],[7,8,3]] print(sorted(lst2, key=lambda k:k[1])) [[4,2,9],[1,5,6],[7,8,3]]
字典排序
# 例項1 # 根據字母的先後順序進行排序(按照字典的鍵進行排序) dic1 = {'q':1,'w':2,'e':3} print(sorted(dic1, key=lambda k:k[0])) ['e', 'q', 'w'] # 例項2 # 按照字典的value進行排序 dic2 = {'q':1,'w':4,'e':3} print(sorted(dic2.items(), key=lambda K:K[1])) [('q', 1), ('e', 3), ('w', 4)] # 例項3 # 字典的鍵進行排序 dic3 = {'q':1,'w':4,'e':3} print(sorted(dic3.items(), key=lambda K:K[0])) [('e', 3), ('q', 1), ('w', 4)] # 例項4 # 如果我只是想要對value進行排序並且只輸出value的結果呢? dic4 = {'q':1,'w':4,'e':3} print(sorted(dic4, key=lambda k:dic4[k])) ['q', 'e', 'w']