15

私は次のようなリストを持っています

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

リストに「value2」が含まれているかどうかを確認するにはどうすればよいですか?

4

4 に答える 4

32

使用any()

any('value2' in sublist for sublist in mylist)
于 2012-10-09T19:31:48.270 に答える
10

次のコマンドですべてのサブリストを確認できますany

any('value2' in subl for subl in mylist)
于 2012-10-09T19:31:44.690 に答える
3
'value2' in (item for sublist in mylist for item in sublist)
于 2012-10-09T20:01:33.280 に答える
0

と同様に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']
于 2012-10-09T19:34:40.077 に答える