两个字典d1
和d2
定义为
d1 = {'foo':123, 'bar':789}
d2 = {'bar':789, 'foo':123}
键的顺序在python3.6+中保留。当我们循环浏览字典并打印条目时,这一点很明显。你知道吗
>>> for x in d1.items():
... print(x)
...
('foo', 123)
('bar', 789)
>>> for x in d2.items():
... print(x)
...
('bar', 789)
('foo', 123)
为什么Python仍然认为d1
和d2
是相等的?你知道吗
>>> d1 == d2
True
字典是散列表,顺序并不重要。在python3.6+中,字典是按插入顺序排列的,但这正是它们的实现方式。秩序与平等无关。如果你想让秩序在平等中起作用,就用一个有序的信息。你知道吗
在python3.6之前,字典都是无序的。因此,检验平等性的唯一明智方法就是忽略顺序。当python3.6对字典进行排序时,这是一个实现细节。由于python3.7,插入顺序是可以依赖的。但是,如果将行为更改为仅在键顺序相同时才考虑字典相等,则会中断大量代码。坦率地说,我认为比较字典而不考虑顺序更有用。你知道吗
相关问题 更多 >
编程相关推荐