Почему порядок итерации набора Python (с одним и тем же содержимым) меняется от запуска к запуску и как я могу сделать его согласованным от запуска к запуску?
Я понимаю, что порядок итерации для набора Python произвольный. Если я помещу «a», «b» и «c» в набор, а затем повторю их, они могут вернуться в любом порядке.
Я заметил, что порядок остается неизменным во время выполнения программы. То есть, если моя программа повторяет один и тот же набор дважды подряд, я получаю один и тот же порядок оба раза. Однако, если я запускаю программу дважды подряд, порядок меняется от запуска к запуску.
К сожалению, это нарушает работу одного из моих автоматических тестов, который просто сравнивает результаты двух запусков моей программы. Меня не волнует фактический порядок, но я хотел бы, чтобы он был последовательным от запуска к запуску.
Лучшее решение, которое я придумал, это:
- Скопируйте набор в список.
- Применить произвольную сортировку к списку.
- Итерация списка вместо набора.
Есть ли более простое решение?
Примечание. Я нашел похожие вопросы на StackOverlow, но ни один из них не решает эту конкретную проблему получения одинаковых результатов от запуска к запуску.