簡體   English   中英

如何按值和鍵對 python 字典進行排序

[英]How to sort python dictionary by value and key

我想通過鍵和值來破壞字典

d = {'i': 1, 'live': 2, 'in': 2, 'bangalore': 2, 'is': 1, 'good': 1, 'city': 1, 'to': 1}

output 將

{'bangalore': 2, 'in': 2, 'live': 2, 'city': 1, 'good': 1, 'i': 1, 'is': 1, 'to': 1}

鏈接問題的答案可以適應您的問題:

d = {k: v for k, v in sorted(d.items(), key = lambda x: (-x[1], x[0]))}

對於你的例子

d = {'i': 1, 'live': 2, 'in': 2, 'bangalore': 2, 'is': 1, 'good': 1, 'city': 1, 'to': 1}
d = {k: v for k, v in sorted(d.items(), key = lambda x: (-x[1], x[0]))}
print(d)

我們得到

{'bangalore': 2, 'in': 2, 'live': 2, 'city': 1, 'good': 1, 'i': 1, 'is': 1, 'to': 1}

按照要求。

按 key 排序,然后 value 是對項目的簡單排序操作:

d = dict(sorted(d.items()))

print(d)
{'bangalore': 2, 'city': 1, 'good': 1, 'i': 1, 'in': 2, 
 'is': 1, 'live': 2, 'to': 1}

要先按值排序,然后按鍵排序,您可以使用字典items()中的反轉元組作為排序鍵:

d = dict(sorted(d.items(),key=lambda kv:kv[::-1]))

print(d)
{'city': 1, 'good': 1, 'i': 1, 'is': 1, 'to': 1, 
 'bangalore': 2, 'in': 2, 'live': 2}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM