Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python sets: почему множество меняет очередность при 2ке

Foxie Ученик (77), закрыт 3 года назад
I = 2
print({i*i, i*i*i})
# {8, 4} Должно {4, 8}
Множество глючит при i=2 и нормально при остальных значениях. Почему так?
Лучший ответ
Андрей Высший разум (483876) 3 года назад
Это не глюк, а абсолютно нормальное и прописанное в документации поведение.

Порядок элементов в множестве и в ассоциативном массиве (словаре) НЕ ОПРЕДЕЛЁН. Это фундаментальное свойство данных типов данных (именно самих типов данных, а не их реализаций в разных языках программирования).

То, в какой последовательности будут выдаваться элементы этих типов, определяет исключительно интерпретатор Python и повлиять на него ты никак не можешь.

Единственный тип данных, в котором порядок элементов гарантирован, - линейный массив (список, кортеж).
Остальные ответы
Похожие вопросы