Я проверяю, являются ли две строки a
и b
перестановками друг друга, и мне интересно, какой идеальный способ сделать это в Python. От Zen Python: "Должен быть один - и желательно только один - очевидный способ сделать это", но я вижу, что есть как минимум два способа:
sorted(a) == sorted(b)
и
all(a.count(char) == b.count(char) for char in a)
но первый медленнее, когда (например) первый char из a
нигде не находится в b
, а второй медленнее, когда они являются фактически перестановками.
Есть ли лучше (или в смысле более пифонического, или в смысле более быстрого в среднем) способа сделать это? Или я должен просто выбрать из этих двух, в зависимости от того, какую ситуацию я ожидаю наиболее часто?