Неупорядоченный dict в Python 3.7 - PullRequest
0 голосов
/ 24 февраля 2019

Словари в python упорядочены начиная с Python 3.6

From - https://stackoverflow.com/a/39980744/4647107

Упорядочены ли словари в Python 3.6 +?

Они упорядочены при вставке.Начиная с Python 3.6, для реализации Python на CPython словари запоминают порядок вставленных элементов.Это считается деталью реализации в Python 3.6;вам нужно использовать OrderedDict, если вы хотите, чтобы порядок вставки гарантировался в других реализациях Python.

Начиная с Python 3.7, это больше не деталь реализации, а вместо этого становится языковой функцией.Из сообщения Python-dev от GvR:

Сделайте это так.«Dict сохраняет порядок вставки» - это решение.Спасибо!

Это просто означает, что вы можете зависеть от этого.Другие реализации Python также должны предлагать упорядоченный словарь для вставки, если они хотят быть соответствующей реализацией Python 3.7.

Есть ли способ реализовать неупорядоченный словарь в python сейчас?

1 Ответ

0 голосов
/ 24 февраля 2019

Вы можете подделать его:

>>> import random
>>> d={'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}
>>> items=list(d.items())
>>> random.shuffle(items)
>>> dict(items)
{'c': [7, 8, 9], 'b': [4, 5, 6], 'a': [1, 2, 3]}
>>> 
...