Python 如何确定二维列表是否包含值?

Python 如何确定二维列表是否包含值?,python,list,python-2.7,Python,List,Python 2.7,我有如下清单 mylist = [('value1', 'value2', 'value3'), ('secval1', 'secval2', 'secval3')] 如何查看列表是否包含“value2”?您只需使用以下内容检查所有子列表: 使用: 类似于any(),该解决方案还支持短路: >>> from itertools import chain >>> mylist = [('value1', 'value2', 'value3'), ('secva

我有如下清单

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

如何查看列表是否包含“value2”?

您只需使用以下内容检查所有子列表:

使用:

类似于
any()
,该解决方案还支持短路:

>>> from itertools import chain
>>> mylist = [('value1', 'value2', 'value3'), ('secval1', 'secval2', 'secval3')]
>>> 'value2' in chain(*mylist)
True
证明它像
any()一样短路。


任何
都已短路。通过创建一个定义
\uuu非零\uuuu
的类来测试它,将
print
语句放入其中,并将其用作
any
参数中的第二个值(当第一个值为
True
时)。
print
语句将不会执行。@poorsod我知道,这就是为什么我说
“类似于any()”
:)哦,我误解了-我以为你是在建议更换使用短路的
任何
。谢谢,我很好奇是否有办法获得匹配的物品?要获得包含你要寻找的价值的物品,当列表中存在
'value2'
时,应使用常规
for
循环并返回或中断。如果要查找所有匹配项,可以使用
[如果子列表中的'value2'为mylist中的子列表,则使用子列表为mylist中的子列表]
。如果要查看二维列表中的值索引,我使用以下答案:
any('value2' in sublist for sublist in mylist)
>>> from itertools import chain
>>> mylist = [('value1', 'value2', 'value3'), ('secval1', 'secval2', 'secval3')]
>>> 'value2' in chain(*mylist)
True
>>> it=chain(*mylist)
>>> 'value2' in it
True
>>> list(it) #part of iterable still not traversed
['value3', 'secval1', 'secval2', 'secval3']
'value2' in (item for sublist in mylist for item in sublist)