【问题标题】:How to sort dictionary values? [closed]如何对字典值进行排序? [关闭]
【发布时间】:2018-03-20 22:05:07
【问题描述】:

我需要按年龄对以下字典进行排序,但我不知道如何:

1 {'name':'ste',   'surname':'pnt',  'age':21}
2 {'name':'test',  'surname':'black','age':24}
3 {'name':'check', 'surname':'try',  'age':41}

这是for 循环的输出:

for k, v in d.items():
    print(k, v)

【问题讨论】:

  • 您不能对字典进行排序,字典对象的出现没有“顺序”。把它想象成试图对一个数学集合对象进行排序,这是没有意义的。你可以通过谷歌搜索“为什么 Python 中的字典是无序的”来了解更多关于这种现象的信息。
  • 我不知道你想向我们展示什么,但它看起来不像字典。
  • @ZiyadEdher 我知道字典是无序的,可以得到一个排序列表或元组
  • Read the Fine Manual(尤其是key的描述)。

标签: python python-3.x sorting dictionary


【解决方案1】:
d = {
  1 : {'name':'ste',   'surname':'pnt',  'age':21},
  2 : {'name':'test',  'surname':'black','age':24},
  3 : {'name':'check', 'surname':'try',  'age':41},
}

sorted(d.values(),key=lambda it: it['age'])

【讨论】:

  • 成功了,非常感谢
【解决方案2】:

所以你的字典已经按年龄排序了,但是...

for key in sorted(mydict.iterkeys()):
    print "%s: %s" % (key, mydict[key])

https://www.saltycrane.com/blog/2007/09/how-to-sort-python-dictionary-by-keys/

【讨论】:

    猜你喜欢
    • 2020-05-26
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2010-10-11
    相关资源
    最近更新 更多