在python2中,
# python2
d = dict(b=12, a=12)
print d.keys()
[‘a’, ‘b’]
在python3中,
# python3
d = dict(b=12, a=12)
print(d.keys())
dict_keys([‘b’, ‘a’])
可见python2, python3的字典keys的结果是不一样的。因此,避免使用字典的keys的顺序作为有序数组。虽然,如果你一直使用python2,代码似乎运行正确,但如果移植到python3,将造成结果错误,并难以排查。
如果必须使用字典,可以使用collections模块中的OrderDict。这能保证在python2, python3中一致性。