Как определить, содержит ли 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']
Ответ 2 Вы можете просто проверить все подсписчики с помощью any: any('value2' in subl for subl in mylist)
Ответ 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']