不同版本的python果然语法上是有区别的,本人又踩坑了。
在Python 3.8版本,字典是有顺序的。如果先键值A先插入字典,键值B后插入字典。那么字典的第一位键值是A,第二位键值是B。
在Python 3.5(含)以前,字典是无序的。如果先键值A先插入字典,键值B后插入字典,但是当你打印字典的Keys列表时,你会发现B可能在A的前面。
d
用python3.8运行,输出结果永远是一致的。如下:
[{'A': 1, 'B': 2, 'C': 3}, {'A': 2, 'B': 4, 'C': 6}, {'A': 3, 'B': 6, 'C': 9}]
用python3.5运行,第一次输出:
[{'B': 2, 'C': 3, 'A': 1}, {'B': 4, 'C': 6, 'A': 2}, {'B': 6, 'C': 9, 'A': 3}]
用python3.5运行,第二次输出:
[{'C': 3, 'A': 1, 'B': 2}, {'C': 6, 'A': 2, 'B': 4}, {'C': 9, 'A': 3, 'B': 6}]
查了一下资料,python3.6版本开始字典是有序的。
希望大家在查找字典的时候不要按照顺序取值,用keys取值。
为什么Python 3.6以后字典有序并且效率更高? - 青南 - 博客园www.cnblogs.com