Всегда ли python dict.items () возвращает один и тот же порядок? - PullRequest
0 голосов
/ 11 сентября 2018

Гарантируется ли, что встроенные в python 2.X методы dict.items() и dict.iteritems() всегда будут возвращать элементы в одном и том же порядке?Или эти методы недетерминированы?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

вам нужно настроить такую ​​функцию:

d = {'a': 4, 'c': 1, 'b': 2, 'd': 3}
def sorteddict(d={}):
    return sorted(d.items(),key=lambda x: x[1])
print(sorteddict(d))
0 голосов
/ 11 сентября 2018

В пределах одного запуска программы и при условии, что между ними не установлено значение d, тогда

d.items()
d.iteritems()
d.keys()
d.iterkeys()
d.values()
d.itervalues()

все согласуются с каждым и каждый раз возвращает одну и ту же последовательность.

Но если вы измените диктовку, она может уменьшаться или увеличиваться и перестраиваться внутри, что может изменить порядок. Который будет оставаться таким же до следующей мутации.

РЕДАКТИРОВАТЬ: одно исключение, которое является преднамеренным. Если вы просто замените значение, связанное с существующим ключом, порядок не изменится. Поэтому, если k in d равно True, d[k] = v безвреден. Все ставки отключены, если вы добавите новый ключ или удалите ключ.

...