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