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