Оператор IF, объединяющий несколько операторов ИЛИ - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть следующая строка

if 'smoke' in row['product'].lower() or 'grill' in row['product'].lower() or 'choco' in row['product'].lower(): 

Я хочу добавить несколько пунктов в предложении OR.['smoke', 'grill,' choco ', ...], как мне сжать оператор if, не теряя логику?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Один из способов - использовать any

if any(item in row['product'].lower()
       for item in ('choco', 'smoke', 'grill'):

Или, если row['product'].lower() - строка, и вы хотите сравнить, идентичны они или нет:

if row['product'].lower() in ('choco', 'grill', 'smoke'):

ГдеУ меня есть кортеж имен, замените его заранее написанным списком строк, например:

names = ('choco', 'grill', 'smoke', ...)
if row['product'].lower() in names:
0 голосов
/ 27 сентября 2018

Вы можете использовать выражение генератора с any:

if any(item in row['product'].lower() for item in ("smoke", "grill", "choco")):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...