Python - лучше проверять, находится ли строка в строке, или list / tuple - PullRequest
0 голосов
/ 23 апреля 2020

Недавно я столкнулся с чем-то, что меня озадачило: я сравнивал фрагменты кода и обнаружил, что они оба проверяли, была ли строка в определенном наборе по-разному. Вот что я имею в виду:

Первый:

a = "+"
if a in "+-*/":
    print("yes")

Второй:

a = "+"
if a in ["+", "-", "*", "/"]:
    print("yes")

Какой я должен использовать? Под этим я подразумеваю, какой из них больше pythoni c?

1 Ответ

0 голосов
/ 23 апреля 2020

Сложность по времени одинакова, поэтому либо работайте, и одинаково / очень похожи скорости.

Если вы хотите что-то лучше

a = "+"
if a in {"+", "-", "*", "/"}:
    print("yes")

, это будет искать "+" в наборе, и поскольку наборы имеют постоянное время поиска, это будет незначительно быстрее, чем поиск в списке или строке

...