字典按照value进行排序共有三种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字典按照value进行排序共有三种方法相关的知识,希望对你有一定的参考价值。

参考技术A 字典按照value进行排序共有三种方法

a = sorted(d.items(), key=lambda x: x[1])
a1 = sorted(d.items(),key = lambda x:x[1],reverse = True)

a2 = sorted(d.items(),key = lambda x:x[0])

import operator
b = sorted(d.items(), key=operator.itemgetter(1))

f = zip(d.keys(), d.values())
c = sorted(f)

print(a)
print(a1)
print(a2)
print(b)
print(c)

打印结果是:

[('a', 1), ('c', 2), ('b', 4), ('f', 12)]
[('f', 12), ('b', 4), ('c', 2), ('a', 1)]
[('a', 1), ('b', 4), ('c', 2), ('f', 12)]
[('a', 1), ('c', 2), ('b', 4), ('f', 12)]
[('a', 1), ('b', 4), ('c', 2), ('f', 12)]

按照字典的值进行排序

按照字典值的大小对字典进行排序

1. 利用zip函数将key值和value值位置进行颠倒,再使用sorted进行排序

例如:

1
2
3
4
5
6
7
8
from random import  randint
d= {k:randint(0,20for in ‘abcdefg‘}
#{‘f‘: 10, ‘g‘: 16, ‘a‘: 18, ‘c‘: 12, ‘e‘: 16, ‘d‘: 7, ‘b‘: 16}
= 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.利用匿名函数进行排序

1
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函数

1
2
3
import operator
print(sorted(d.items(), key=operator.itemgetter(1)))
#[(‘d‘, 7), (‘f‘, 10), (‘c‘, 12), (‘g‘, 16), (‘e‘, 16), (‘b‘, 16), (‘a‘, 18)]

以上是关于字典按照value进行排序共有三种方法的主要内容,如果未能解决你的问题,请参考以下文章

Python对字典分别按键(key)和值(value)进行排序

按照字典的值进行排序

TreeMap按照value进行排序

TreeMap按照value进行排序

对数组中的字典进行排序

按照字典排序