Какой из них будет работать быстрее - PullRequest
0 голосов
/ 29 сентября 2019

lst - очень большой список целых чисел

a, b и c - числа

  • код 1
    if a in lst or b in lst or c in lst:
        print("found in lst")

  • код 2
    if a in lst:
        print("found in lst")

    elif b in lst:
        print("found in lst")

    elif c in lst:
        print("found in lst")

есть ли разница в скорости в коде 1 и коде 2

1 Ответ

0 голосов
/ 29 сентября 2019

Строго говоря, оба ваших примера кода будут работать одинаково, так как оператор or поддерживает короткую настройку.Это означает, что Python будет , а не оценивать последующие условия, если только предыдущее состояние не оценивается как False.Например, если у нас есть A or B or C, если только A и B не False, Python будет не оценивать C.

То же самое происходит с вашимif операторы: C будут оцениваться только в том случае, если оба значения A и B равны False.

Однако в больших списках не следует выполнять какие-либо подобные запросы,Если не нужно индексировать элементы списка, хеш-таблица (словарь) почти всегда лучше, так как вы получите время поиска O (1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...