Найти - Пользователи
Полная версия: Почему выводит словарь через цикл с конца? :(
Начало » Python для экспертов » Почему выводит словарь через цикл с конца? :(
1
zero_mod
Вот код:
dict = {"one": "1", "two": "2", "three": "3"}

for k in dict.keys():
print k
выводит:
three
two
one

Почему с конца? Объясните плиз.
astoon
Потому что сортирует ключи хэша в алфавитном порядке ;)
j2a
astoon
Потому что сортирует ключи хэша в алфавитном порядке ;)
Неверно. Он их вообще не сортирует.

P.S. for k in d.keys() – устаревшее, лучше for k in d
Александр Кошелев
Это просто детали реализации дерева, корое внутри dict
Андрей Светлов
Все правильно. Позволю себе немного более развернутый комментарий.
dict - это такая структура, которая сортирует контейнер по хеш-значениям ключей. Т.е. в общем случае - непредсказуемо. md5 или sha1 - частные случаи для вычисления хешей. В dict куда более простой (4 байта).
Позволяет быстро искать по ключу. Для чего и делался.
Для сортировки по ключу в алфафитном или каком другом порядке не подходит. Для этой цели разработано множество других контейнеров, и не сложно добавить сюда еще один ваш, уникальный
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB