Я нашел этот сайт названным галерея Visual Studio - это имеет много дополнений Visual Studio. Я просматриваю его прямо сейчас, и я рекомендую всем посетить его.
Вот что dict.items ()
документация говорит:
dict.items () возвращает копию списка словаря ( пары ключ, значение).
Если items (), keys (), values (), iteritems (), iterkeys () и itervalues () вызываются без промежуточных изменений словаря, списки будут напрямую соответствовать.
Думаю, разумно предположить, что порядок элементов не изменится, если все, что вы делаете, - это итерация.
Стандартный Python dict
, как и большинство реализаций, не сохраняет порядок, поскольку доступ к элементам обычно осуществляется с помощью ключа.
Однако предсказуемая итерация иногда полезна и в Python 3.1 модуль коллекций
содержит OrderedDict , который сохраняет порядок с минимальными издержками производительности.
Да. Никакой рандомизации. Есть еще более надежная гарантия - см. здесь .
collections.OrderedDict
будет доступен в Python 2.7 в дополнение к Python 3.1.
Для версий Python ранее, чем 2.7, на PyPI есть collect.ordereddict , а в Django есть собственная реализация SortedDict .
Словарь Python не имеет понятия порядка. Таким образом, вы не можете зависеть от определенного порядка при повторении.
Это сделано умышленно: поскольку это хэш-карта, этого нельзя избежать, если вам нужен «быстрый поиск»!
Как сказал Кристоф, словарь используется для организации пар ключ / значение из-за быстрого времени доступа, которое он обеспечивает. Если вашему приложению требуется фиксированный индекс, вам следует взглянуть на другие структуры данных, которые обеспечивают конкретный / известный порядок.
Сказав это, можно с уверенностью предположить, что порядок не изменится, если не будут добавлены элементы (там не было бы никакого смысла проделывать эту дорогостоящую операцию перетасовки вещей) и т. д., но, опять же, не полагайтесь на это.
Он может быть сохранен в некоторых реализациях, но не рассчитывайте на это, поскольку он не является частью спецификации Dict.