如何按字典的键对字典进行排序?
示例输入:
{2:3, 1:89, 4:5, 3:0}
期望的输出:
{1:89, 2:3, 3:0, 4:5}
原文由 Antony 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何按字典的键对字典进行排序?
示例输入:
{2:3, 1:89, 4:5, 3:0}
期望的输出:
{1:89, 2:3, 3:0, 4:5}
原文由 Antony 发布,翻译遵循 CC BY-SA 4.0 许可协议
字典本身没有这样的有序项目,如果您想按某种顺序打印它们等,这里有一些例子:
在 Python 2.4 及更高版本中:
mydict = {'carl':40,
'alan':2,
'bob':1,
'danny':3}
for key in sorted(mydict):
print "%s: %s" % (key, mydict[key])
给出:
alan: 2
bob: 1
carl: 40
danny: 3
(Python 2.4 以下:)
keylist = mydict.keys()
keylist.sort()
for key in keylist:
print "%s: %s" % (key, mydict[key])
来源:http: //www.saltycrane.com/blog/2007/09/how-to-sort-python-dictionary-by-keys/
原文由 James 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
标准 Python 字典是无序的(直到 Python 3.7)。即使您对 (key,value) 对进行了排序,您也无法以保留顺序的方式将它们存储在
dict
中。最简单的方法是使用
OrderedDict
,它会记住插入元素的顺序:别介意
od
的打印方式;它会按预期工作:蟒蛇 3
对于 Python 3 用户,需要使用
.items()
而不是.iteritems()
: