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)
→ Ссылка