在Python中,如何以排序顺序迭代字典?

问题:

有一个现有的功能结束于:

return dict.iteritems()

它为给定的字典返回未排序的迭代器。我想返回一个按排序顺序排列的项目的迭代器。我怎么做?

回答:

没有非常广泛地测试,但在Python 2.5.2中工作。

>>> d = {"x":2, "h":15, "a":2222}
>>> it = iter(sorted(d.iteritems()))
>>> it.next()
('a', 2222)
>>> it.next()
('h', 15)
>>> it.next()
('x', 2)
>>>

如果你习惯做for key, value in d.iteritems(): ...而不是迭代器,那么这仍然适用于上面的解决方案

>>> d = {"x":2, "h":15, "a":2222}
>>> for key, value in sorted(d.iteritems()):
>>>     print(key, value)
('a', 2222)
('h', 15)
('x', 2)
>>>

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: In Python, how do I iterate over a dictionary in sorted order?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

9 + 1 =