[英]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.