1. 程式人生 > 其它 >Lambda和sorted組合排序列表和字典

Lambda和sorted組合排序列表和字典

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']