@freshcot

Почему меняется последовательность элементов при создании словаря?

Есть следующий список кортежей:
l4 = [('air', 'plan', 'tor', 'info', 'pro', 'nv', 'kol', 'nvs'), (1620, 1470, 1310, 1130, 1080, 1070, 1060, 1060)]

Почему при создании из этого списка словаря, меняется последовательность элементов?
{k: v for k, v in zip(l4[0], l4[1])}
Out[18]: 
{'air': 1620,
 'info': 1130,
 'kol': 1060,
 'nv': 1070,
 'nvs': 1060,
 'plan': 1470,
 'pro': 1080,
 'tor': 1310}

In [19]:

UPD: как видно, сортируется по алфавиту, но почему? и как это исправить?
  • Вопрос задан
  • 235 просмотров
Решения вопроса 1
@deliro
Словарь не хранит последовательность добавления. Если нужен таковой, используй
from collections import OrderedDict
https://docs.python.org/3/library/collections.html...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
nclsf87
@nclsf87
Junior dreamer
Потому что словарь - это "ассоциативный массив", его элементы не имеют порядка, поскольку доступ к ним осуществляется по хэшируемому ключу, а не по индексу, как в списке или кортеже.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
потому

исправить - как написал Roman Kitaev
или другими извращениями
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы