Python. Как написать функцию в одну строку (список в строку , тернарный if и return)
хочу написать функцию функцию, которая будет проверять вхождение слова из списка в строку. Рабочий вариант:
def compaign_type(row, list_search):
for x in list_search:
if x in row:
return x
что пробовал:
def compaign_type(row, list_search):
return x if x in row for x in list_search
Возможно вообще подобное сочетание?
UPDATE:
row = 'aa_bb_cc'
list_search = ['aa', 'dd', 'ss']
Ответы (1 шт):
Автор решения: DiMithras
→ Ссылка
Надеюсь Вы перестанете редактировать вопрос. Вы тернарный оператор удаляете постоянно.
В текущем состоянии:
def compaign_type(row, list_search):
for x in list_search:
if x in row:
return x
compaign_type('aa_bb_cc', ['aa', 'dd', 'ss'])
Вывод:
'aa'
В одну строку:
compaign_type = lambda r, l: next(iter([x for x in l if x in r]), None)
compaign_type('aa_bb_cc', ['aa', 'dd', 'ss'])
Вывод:
'aa'
Альтеративно с def:
def compaign_type(r, l): return next(iter([x for x in l if x in r]), None)