В последней версии Python dict сохраняет порядок вставки. Есть ли какие-либо изменения с точки зрения равенства. Например, в настоящее время работает ниже. Поскольку порядок вставки будет важен, может ли это измениться в будущем?

Я спрашиваю, потому что есть фундаментальные изменения - раньше == работал, потому что порядок вставки не был важен, поскольку он считался неупорядоченным. Теперь, когда он упорядочен, может ли смысл равенства измениться?

d1={'a':1,'b':2}
d2={'b':2,'a':1}
print(d1==d2)
True

l1=['a','b']
l2=['b','a']
print(l1==l2)
False
8
variable 4 Окт 2019 в 13:43
4
Нет, это значение не изменится.
 – 
L3viathan
4 Окт 2019 в 13:44

1 ответ

В официальной документации Python говорится следующее об операторе == относительно словари:

Отображения (экземпляры dict) сравниваются равными тогда и только тогда, когда они имеют равные пары (ключ, значение). Сравнение равенства ключей и значений обеспечивает рефлексивность.

Таким образом, порядок вставки не учитывается, и из-за обратной совместимости он, вероятно, никогда не будет, поскольку он, вероятно, не будет иметь смысла или будет неинтуитивным почти во всех случаях.

2
Alan Verresen 7 Окт 2019 в 14:33