В Python наборы не имеют детерминированного порядка. Почему же тогда вы можете выполнить распаковку кортежа для множества в Python?
Чтобы продемонстрировать проблему, возьмем следующее в CPython 3.10.12:
Код: Выделить всё
a, b = {"foo", "bar"} # sets `a = "bar"`, `b = "foo"`
a, b = {"foo", "baz"} # sets `a = "foo"`, `b = "baz"`
Я понимаю, что буквальный ответ заключается в том, что распаковка кортежа Python работает с любой итерацией. Например, вы можете сделать следующее:
Но почему при распаковке кортежа не используется проверка того, что распаковываемый объект имеет детерминированный порядок?
Подробнее здесь:
https://stackoverflow.com/questions/793 ... rk-on-sets