Я получаю неправильный вывод в Python - PullRequest
0 голосов
/ 15 октября 2018

Словарь Python - это неупорядоченная, изменяемая и индексируемая коллекция.Нет повторяющихся членов. Но когда я запускаю приведенный ниже код, я вижу неожиданно неправильный вывод (упорядоченные кортежи), он должен быть неупорядоченным.В чем проблема с кодом?

my_dict = {}
my_dict['a'] = 1
my_dict['b'] = 2
my_dict['c'] = 3
my_dict['d'] = 4
my_dict['e'] = 5
my_dict['f'] = 6
my_dict['g'] = 7
my_dict['h'] = 8
my_dict['i'] = 9
for k, v in my_dict.items():
    print(k, v) 

1 Ответ

0 голосов
/ 15 октября 2018

В CPython 3.6 и (любом) Python 3.7 словари запоминают порядок вставки ключей , а вызовы dict.keys, dict.values и dict.items будут отражать этот порядок.

Кроме того, «упорядочено по совпадению» содержится в наборе всех произвольных порядков, которые можно получить при печати в более ранних реализациях.:)

...