Проверьте, существует ли namedtuple со значением x в списке
Я хочу посмотреть, существует ли namedtuple в списке, подобном:
numbers = [1, 2, 3, 4, 5]
if 1 in numbers:
do_stuff()
Есть ли питонский (или нет) способ сделать это? Что-то вроде:
namedtuples = [namedtuple_1, namedtuple_2, namedtuple3]
if (namedtuple with value x = 1) in namedtuples:
do stuff()
1 ответ:
Использование
any
:Демо:
>>> from collections import namedtuple >>> A = namedtuple('A', 'x y') >>> lis = [A(100, 200), A(10, 20), A(1, 2)] >>> any(a.x==1 for a in lis) True >>> [getattr(a, 'x')==1 for a in lis] [False, False, True]