#python #set
Вопрос:
В py2:
{1: {“1”, “2”, “7”, “3”, “4”, “9”, “8”}}
Возвращается для всех запусков {1: set([‘1’, ‘3’, ‘2’, ‘4’, ‘7’, ‘9’, ‘8’])}
В py3:
{1: {“1”, “2”, “7”, “3”, “4”, “9”, “8”}}
Возвращается при первом запуске {1: {“1”, “3”, “4”, “7”, “8”, “2”, “9”}}
Возврат для второго запуска {1: {“2”, “4”, “9”, “7”, “1”, “3”, “8”}}
Порядок элементов в inside dict продолжает меняться.
Мой главный вопрос заключается в том, почему он продолжает меняться с каждым запуском и как его решить, чтобы получить стабильный результат, как в py2?
Комментарии:
1. Это набор, а наборы не имеют надежного порядка. Как это решить? Используя вместо этого список.
2. @luk2302: Диктанты теперь упорядочены, но не наборы.
3. @Mahrkeenerh Microsoft visual studio
Ответ №1:
Используйте другую структуру (например, список или диктант (начиная с Python 3.7)/OrderedDict) — наборы по своей сути не имеют понятия порядка.