簡體   English   中英

為什么我對字典的排序 function 不根據其值對其進行排序?

[英]why does my sort function for a dictionary not sort it according to its values?

我有一個字典,其中的鍵和值都是整數。

my_dict = {1:3,2:5,3:1} 

我想根據它的值對我的字典進行排序。

我在這里找到了一篇非常有用的文章: python 字典中的 5 個最大值

因此,我嘗試了建議的方法,即根據 my_dict 的值(反向)對 my_dict 進行排序:

sorted(my_dict,key=my_dict.get, reverse=True)

這似乎沒有按照文章中建議的值對 my_dict 進行排序。 任何想法為什么?

返回值是my_dict的索引。 您可以使用my_list = [my_dict[i] for i in sorted(my_dict,key=my_dict.get, reverse=True)]獲得所需的列表。

看來你想要的已經sorted(my_dict.values(), reverse=True)

如前所述,字典不保留順序。 然而,有序字典做

from collections import OrderedDict
my_dict = my_dict = {1:3,2:5,3:1}
sorted_dict = OrderedDict({k:my_dict[k] for k in sorted(my_dict,key=my_dict.get)})

這將導致sorted_dict包含

OrderedDict([(3, 1), (1, 3), (2, 5)])

如果您使用my_list.append(sorted(my_dict, reverse=True)[:2])它將 append 兩個最大值添加到 my_list。

暫無
暫無

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

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