Python 我如何对下面的听写列表进行排序?
单个字典由Python 我如何对下面的听写列表进行排序?,python,python-3.x,list,sorting,dictionary,Python,Python 3.x,List,Sorting,Dictionary,单个字典由3key:value对组成,我需要通过比较第一个键对字典进行排序,如果值与比较第二个键相同,依此类推,我该怎么做 例如,如果字典列表如下所示: lst = [{'a':10,'b':20,'c':30},{'a':20,'b':50,'c':30},{'a':20,'b':40,'c':10},{'a':20,'b':40,'c':30}] [{'a':20,'b':50,'c':30},{'a':20,'b':40,'c':30},{'a':20,'b':40,'c':10},{'
3
key:value
对组成,我需要通过比较第一个键对字典进行排序,如果值与比较第二个键相同,依此类推,我该怎么做
例如,如果字典列表如下所示:
lst = [{'a':10,'b':20,'c':30},{'a':20,'b':50,'c':30},{'a':20,'b':40,'c':10},{'a':20,'b':40,'c':30}]
[{'a':20,'b':50,'c':30},{'a':20,'b':40,'c':30},{'a':20,'b':40,'c':10},{'a':10,'b':20,'c':30}]
排序后,结果必须如下所示:
lst = [{'a':10,'b':20,'c':30},{'a':20,'b':50,'c':30},{'a':20,'b':40,'c':10},{'a':20,'b':40,'c':30}]
[{'a':20,'b':50,'c':30},{'a':20,'b':40,'c':30},{'a':20,'b':40,'c':10},{'a':10,'b':20,'c':30}]
在这里,我们可以看到,在上一个3个字典的'a'
键的原始列表中,值是相同的,因此我们比较了它们的'b'
键并对它们进行了相应的排序,但上两个字典的'b'
键是相同的,因此我们比较了'c'
键并应用了排序。您可以使用,在键
函数中使用字典的值
,这样将根据每个字典中的所有值进行排序:
sorted(lst, key=lambda x: list(x.values()), reverse=True)
[{'a': 20, 'b': 50, 'c': 30},
{'a': 20, 'b': 40, 'c': 30},
{'a': 20, 'b': 40, 'c': 10},
{'a': 10, 'b': 20, 'c': 30}]
示例中的dict有3个键:值对,而不是4个。你们知道在3.7之前,口述是无序的,即第一,第二,等等。键是不明确的,对吗?这可能会帮助你们: