在读取时打印dict迭代元素(声明)

时间:2018-11-15 14:18:11

标签: python dictionary python-2.6 iteritems

我正在读取python2.6中的字典,如下所示 我知道Python3.6将按照声明的顺序读取字典,但是我需要在Python2.6中实现此目的(OrderedDict在Python2.6中也不可用)

numbermap = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}

>>> for k, v in numbermap.iteritems():
...    print(k,v)
...
('four', 4)
('three', 3)
('five', 5)
('two', 2)
('one', 1)

我希望输出为

('one',1)
('two', 2)
('three', 3)
('four', 4)
('five', 5)

我在读字典时需要写东西。有什么想法可以在Python 2.6中实现吗?

3 个答案:

答案 0 :(得分:0)

似乎您要订购字典。如果可以使用Python 2.7,请查找collections.OrderedDicthttps://docs.python.org/2/library/collections.html#collections.OrderedDict

如果您必须坚持2.6,这里有一些建议:https://stackoverflow.com/a/1617087/3061818(但是您可能应该前往Dictionaries: How to keep keys/values in same order as declared?

答案 1 :(得分:0)

有许多可用于排序字典的实践。您可以检查以下示例。

第一个示例:

>>> import operator
>>> numbermap = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
>>> sorted_maps = sorted(numbermap.items(), key=operator.itemgetter(1))
>>> print(sorted_maps)
[('one', 1), ('two', 2), ('three', 3), ('four', 4), ('five', 5)]

第二个示例:

>>> import collections
>>> sorted_maps = collections.OrderedDict(numbermap)
>>> print(sorted_maps)
OrderedDict([('one', 1), ('two', 2), ('three', 3), ('four', 4), ('five', 5)])

答案 2 :(得分:-1)

1反转键值

2对新键进行排序

我的解决方案是对键进行排序

听起来像作弊,但是有效:

首先调用一些东西来反转字典

for i in sort(numbermap.keys()):
  print(i,numbermap[i])