mylist = [('value1', 'value2', 'value3'), ('secval1', 'secval2', 'secval3')]
リストは、「値2」が含まれている場合どのように私は見ていますが、次のようなリストがありますか?
mylist = [('value1', 'value2', 'value3'), ('secval1', 'secval2', 'secval3')]
リストは、「値2」が含まれている場合どのように私は見ていますが、次のようなリストがありますか?
あなたは、単にany
とすべてのサブリストを確認することができます。
any('value2' in subl for subl 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']
'any'はすでに短絡しています。 '__nonzero__'を定義するクラスを作成し、そこに' print'文を入れ、 'any'への引数の2番目の値として使います(最初が' True'のとき)。 'print'文は実行されません。 –
@poorsod私はこれを知っています。そのため、私は ''と似ています。 :) –
ああ、私は誤解されています - あなたが短絡を使用する 'any'の代わりを提案していると思っていました。 –
'value2' in (item for sublist in mylist for item in sublist)
あなたは2次元のリスト内の値のインデックスを表示したい場合は、私はこの回答を使用:https://stackoverflow.com/a/6518412/1799272 – Oli4