← Все вопросы
Как проверить, что переменная равна одному из нескольких значений, без кучи or?
16
У меня получается уродливо:
if day == 'сб' or day == 'вс':
...
А если значений штук пять? Писать пять or? Должно же быть короче.
3 ответа
22
✓ Принятый ответ — помог автору
Используй оператор in с коллекцией значений:
if day in ('сб', 'вс'):
...
Для пяти значений:
if day in ('пн', 'вт', 'ср', 'чт', 'пт'):
print('будний')
Читается «если day среди этих». Если проверок много и они в горячем коде — лучше взять set ({'пн', 'вт', ...}), у него проверка на вхождение быстрее на больших объёмах. Для пары значений разницы нет, бери что читабельнее.
Михаил Попов а кортеж или список лучше? () · 7 месяцев назад
Dmitry Permiakou автор: для константного набора привычнее кортеж или set, разницы по сути нет · 7 месяцев назад
Evgeniy Arapov in спасает, спасибо! · 7 месяцев назад
9
if day in {'сб', 'вс'}: — через множество.
5
Через in.
Ваш ответ
Войдите, чтобы ответить на вопрос.