我正在读取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中实现吗?
答案 0 :(得分:0)
似乎您要订购字典。如果可以使用Python 2.7,请查找collections.OrderedDict
:https://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])