2024-05-10 21:21:05 发布
网友
我找到的唯一方法是python2或只返回元组列表。
是否可以按字典的值对字典进行排序,例如{"aa": 3, "bb": 4, "cc": 2, "dd": 1}?
{"aa": 3, "bb": 4, "cc": 2, "dd": 1}
我要实现的分类字典的顺序是从大到小。我希望结果如下:
bb 4 aa 3 cc 2 dd 1
排序之后,我想把它存储到一个文本文件中。
itemgetter(如我所知)对于大型词典更有效,但对于常见情况,我相信d.get会赢。而且它不需要额外的import。
itemgetter
d.get
import
>>> d = {"aa": 3, "bb": 4, "cc": 2, "dd": 1} >>> for k in sorted(d, key=d.get, reverse=True): ... k, d[k] ... ('bb', 4) ('aa', 3) ('cc', 2) ('dd', 1)
请注意,您也可以将d.__getitem__设置为key函数,该函数可以提供比d.get小的性能提升。
d.__getitem__
key
为了对字典进行排序,我们可以使用运算符模块。Here是操作模块文档。
import operator #Importing operator module dc = {"aa": 3, "bb": 4, "cc": 2, "dd": 1} #Dictionary to be sorted dc_sort = sorted(dc.items(),key = operator.itemgetter(1),reverse = True) print dc_sort
输出序列将是一个排序列表:
[('bb', 4), ('aa', 3), ('cc', 2), ('dd', 1)]
如果我们想按钥匙分类,我们可以利用
dc_sort = sorted(dc.items(),key = operator.itemgetter(0),reverse = True)
输出顺序为:
[('dd', 1), ('cc', 2), ('bb', 4), ('aa', 3)]
from collections import OrderedDict from operator import itemgetter d = {"aa": 3, "bb": 4, "cc": 2, "dd": 1} print(OrderedDict(sorted(d.items(), key = itemgetter(1), reverse = True)))
印刷品
OrderedDict([('bb', 4), ('aa', 3), ('cc', 2), ('dd', 1)])
尽管从你的最后一句话来看,一个元组列表似乎可以很好地工作,例如
from operator import itemgetter d = {"aa": 3, "bb": 4, "cc": 2, "dd": 1} for key, value in sorted(d.items(), key = itemgetter(1), reverse = True): print(key, value)
哪个指纹
itemgetter
(如我所知)对于大型词典更有效,但对于常见情况,我相信d.get
会赢。而且它不需要额外的import
。请注意,您也可以将
d.__getitem__
设置为key
函数,该函数可以提供比d.get
小的性能提升。为了对字典进行排序,我们可以使用运算符模块。Here是操作模块文档。
输出序列将是一个排序列表:
如果我们想按钥匙分类,我们可以利用
输出顺序为:
印刷品
尽管从你的最后一句话来看,一个元组列表似乎可以很好地工作,例如
哪个指纹
相关问题 更多 >
编程相关推荐