Как определить, содержит ли 2-мерный список значение?

У меня есть список вроде

mylist = [('value1', 'value2', 'value3'), ('secval1', 'secval2', 'secval3')]

как узнать, содержит ли список "значение2"?

Ответ 1

Используйте any():

any('value2' in sublist for sublist in mylist)

Ответ 2

Вы можете просто проверить все подсписчики с помощью any:

any('value2' in subl for subl in mylist)

Ответ 3

'value2' in (item for sublist in mylist for item in sublist)

Ответ 4

похож на any(), решение, которое также поддерживает короткое замыкание:

>>> from itertools import chain
>>> mylist = [('value1', 'value2', 'value3'), ('secval1', 'secval2', 'secval3')]
>>> 'value2' in chain(*mylist)
True

доказательство того, что оно замыкается так, как any():

>>> it=chain(*mylist)
>>> 'value2' in it
True
>>> list(it) #part of iterable still not traversed
['value3', 'secval1', 'secval2', 'secval3']