如何按插入顺序从字典中检索项目?
在Python字典中,能否按照插入的顺序来获取里面的项目呢?
11 个回答
20
使用OrderedDict(),这个功能从2.7版本开始就有了。
只是出于好奇:
from collections import OrderedDict
a = {}
b = OrderedDict()
c = OrderedDict()
a['key1'] = 'value1'
a['key2'] = 'value2'
b['key1'] = 'value1'
b['key2'] = 'value2'
c['key2'] = 'value2'
c['key1'] = 'value1'
print a == b # True
print a == c # True
print b == c # False
27
从Python 3.7开始,标准的字典(dict)会保持你添加元素的顺序。根据官方文档的说明:
在3.7版本中进行了更改:字典的顺序保证是插入顺序。这种行为在3.6版本的CPython中是实现细节。
所以,你可以正常地遍历字典,或者使用popitem()
这个方法。
71
在使用CPython 3.6及以上版本(或者其他Python实现的3.7及以上版本)时,标准的Python dict
默认就会保持插入的顺序。
如果你使用的是旧版本的Python,可以使用collections.OrderedDict
。