按照字典的值進行排序
阿新 • • 發佈:2017-09-10
from cde 輸入 利用 key值 pre rand 重新 port
按照字典值的大小對字典進行排序
1. 利用zip函數將key值和value值位置進行顛倒,再使用sorted進行排序
例如:
from random import randint d= {k:randint(0,20) for k in ‘abcdefg‘} #{‘f‘: 10, ‘g‘: 16, ‘a‘: 18, ‘c‘: 12, ‘e‘: 16, ‘d‘: 7, ‘b‘: 16} z = list(zip(d.values(),d.keys())) # zip函數就是將輸入的序列重新組合成每個元素都是元組的列表,其中每個元素由輸入序列相同位置的元素組成 #[(10, ‘f‘), (16, ‘g‘), (18, ‘a‘), (12, ‘c‘), (16, ‘e‘), (7, ‘d‘), (16, ‘b‘)] print(sorted(zip(d.values(),d.keys()))) #[(7, ‘d‘), (10, ‘f‘), (12, ‘c‘), (16, ‘b‘), (16, ‘e‘), (16, ‘g‘), (18, ‘a‘)]
2.利用匿名函數進行排序
print(sorted(d.items(),key = lambda k : k[1])) #[(‘d‘, 7), (‘f‘, 10), (‘c‘, 12), (‘g‘, 16), (‘e‘, 16), (‘b‘, 16), (‘a‘, 18)]
3. 使用operator.itemgetter函數
import operator print(sorted(d.items(), key=operator.itemgetter(1))) #[(‘d‘, 7), (‘f‘, 10), (‘c‘, 12), (‘g‘, 16), (‘e‘, 16), (‘b‘, 16), (‘a‘, 18)]
按照字典的值進行排序