@Andrei1penguin1

Какой вариант построения условий производительнее?

Доброго времени суток, вот стало интересно, какой вариант из двух работает быстрее и потребляет меньше памяти?
#1:
if x == 1 or x == 2 or x == 3: ...
#2:
if x in [1, 2, 3]: ...
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@deliro
Очевидно, первый потребляет меньше памяти. Также он будет быстрее как минимум потому, что построение списка — это долго и дорого по сравнению с простейшим сравнением равенства.

Но это всё спички, а ты на них экономишь. Если ты выбрал питон, то про слово "производительность" забудь в 99% случаев. Да и вообще, (почти) любой код — про читаемость прежде всего. Да, есть места вроде ядра linux, драйверов, embed и т.п., где пишут нечитаемый код, лишь бы выполнялось быстрее. Но питон от этого настолько далеко, насколько можно представить, только ещё чуть дальше.

P.S. операция in над списком обычно не выполнятся, т.к. очевидно, сложность будет O(n). Если элементов списка не три, а значительно больше, то стоит заменить на set. Так и читабельней и быстрее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Если у тебя не миллионы элементов в коллекции - разница вряд ли будет.
А если так, то достаточно создать коллекцию один раз и переиспользовать её, а не делать это внутри if - и разницы не будет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы