Ответ 1
Используйте any()
:
any('value2' in sublist for sublist in mylist)
У меня есть список вроде
mylist = [('value1', 'value2', 'value3'), ('secval1', 'secval2', 'secval3')]
как узнать, содержит ли список "значение2"?
Используйте any()
:
any('value2' in sublist for sublist in mylist)
Вы можете просто проверить все подсписчики с помощью any
:
any('value2' in subl for subl in mylist)
'value2' in (item for sublist in mylist for item in sublist)
похож на 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']