如何按照值对Python字典排序?有几种方式和对应的实例?我有一个从数据库中的两个字段读取的值字典:字符串字段和数字字段。
字符串字段是唯一的,因此这是字典的键。
我可以对键进行排序,但是如何根据值进行排序?
注意:我想问的问题是如何按字典值对字典列表进行排序? 并且可能会改变我的代码以获得字典列表,但由于我不需要字典列表,我想知道是否有更简单的解决方案可以按升序或降序排序。
不可能对字典进行排序,只能获得已排序字典的表示。 字典本质上是无序的,但其他类型(如列表和元组)则不是。
所以你需要一个有序的数据类型来表示排序的值,这将是一个列表 –
可能是一个元组列表。
例如,
import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))
sorted_x将是由每个元组中的第二个元素排序的元组列表。 dict(sorted_x)== x。
【如何按照值对Python字典排序(有几种方式和对应的实例?)】对于那些希望对键而不是值进行排序的情况:
import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(0))# 在Python3中,因为解压是不允许的,所以我们可以使用[1]
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=lambda kv: kv[1])# 如果你希望输出为dict,可以使用collections.OrderedDict:
import collectionssorted_dict = OrderedDict(sorted_x)
推荐阅读
- Python如何将两个字典合并到一个表达式中(有哪些方式?)
- 如何理解Python中if__name__==“__main__”(它是什么意思,有什么用?)
- CD Projekt Red承诺《赛博朋克2077》的发展紧缩不会像《巫师3》那样糟糕
- Blair Witch赶在万圣节前夕获得新的VR体验
- Ubisoft承诺《善与恶2》之外的更新承诺“游戏进展顺利”
- Anthems的残局仍然需要证明自己
- 揭露Anthem 2.0更新,如果正确拉开,可能没有人能像天空一样卷土重来
- 游戏评测(《Samurai Shodown》)
- 游戏评测(Fortnite – 史诗时代)