Словари в 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 3.6 +?
Они упорядочены при вставке.Начиная с Python 3.6, для реализации Python на CPython словари запоминают порядок вставленных элементов.Это считается деталью реализации в Python 3.6;вам нужно использовать OrderedDict, если вы хотите, чтобы порядок вставки гарантировался в других реализациях Python.
Начиная с Python 3.7, это больше не деталь реализации, а вместо этого становится языковой функцией.Из сообщения Python-dev от GvR:
Сделайте это так.«Dict сохраняет порядок вставки» - это решение.Спасибо!
Это просто означает, что вы можете зависеть от этого.Другие реализации Python также должны предлагать упорядоченный словарь для вставки, если они хотят быть соответствующей реализацией Python 3.7.
Есть ли способ реализовать неупорядоченный словарь в python сейчас?
Вы можете подделать его:
>>> 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]} >>>