回答:
次の構文を使用できます。
if myItem in list:
# do something
また、逆演算子:
if myItem not in list:
# do something
リスト、タプル、セット、およびディクショナリー(チェックキー)の場合は問題ありません。
注これはリストやタプルにO(n)の動作であるが、そのセットとdictsにO(1)操作。
o='--skip'; o in ("--skip-ias"); # returns True !
("--skip-ias")はタプルではなく文字列であるため一致します(括弧は(1)整数のように何もしません)。1タプルが必要な場合は、単一の項目("--skip-ias",)(または(1,))の後にコンマを追加する必要があります。
他の人が言ったことに加えてin、list.__contains__メソッドを呼び出すこと、つまり、作成したクラスで定義することができ、Pythonを最大限に活用するのに非常に便利になることを知りたいと思うかもしれません。
ばかげた使用法は次のとおりです。
>>> class ContainsEverything:
def __init__(self):
return None
def __contains__(self, *elem, **k):
return True
>>> a = ContainsEverything()
>>> 3 in a
True
>>> a in a
True
>>> False in a
True
>>> False not in a
False
>>>
Trueリストにアイテムの出現回数がFalse含まれているかどうか、またはリストに出現がないかまったく含まれていないかどうかを確認するために、最近この1行を思いつきました。を使用するとnext(...)、これにデフォルトの戻り値(False)が与えられ、リスト全体を実行するよりも大幅に速く実行されるはずです。
list_does_contain = next((True for item in list_to_test if item == test_item), False)
any(item == test_item for item in list_to_test)私も思いますか?
listメソッドindexは-1、アイテムが存在しない場合は戻り、存在する場合はリスト内のアイテムのインデックスを返します。または、ifステートメントで次の操作を実行できます。
if myItem in list:
#do things
次のifステートメントを使用して、要素がリストにないかどうかを確認することもできます。
if myItem not in list:
#do things
index方法は戻りません-1の要素が存在しない場合、それはスローValueError例外を。