Как найти строчку в списке списка

Моя sql функция возвращает мне список кортежей. Пример: result = [('p',), ('a',)]. Мне нужно в одну строчку проверить содержится ли в данном списке данных строчка, условно говоря, 'p'. Если использовать 'p' in result, выдает False т.к. он видит только два кортежа внутри. Как красиво и лаконично решить проблему?


Ответы (2 шт):

Автор решения: Эникейщик

я вот такое нагородил:

bool(sum([int("p" in el) for el in result]))

int("p" in el) - ставит 1, если "p" есть в кортеже, 0, если нет.

sum - считает итоговую сумму.

bool - выдает True, если сумма не 0 (т.е. хотя бы один кортеж содержал "p").

Можно убрать bool(), тогда выдаст количество кортежей, которые содержат искомое.

→ Ссылка
Автор решения: SergFSM

можно фильтрануть:

bool(*filter(lambda x: x[0]=='p',result))
→ Ссылка