572

anyアイテムがリストに存在するかどうかを確認するために別のリストを収集するために人々が使用しているようですが、このようなことを行う簡単な方法はありますか?

if list.contains(myItem):
    # do something
4

6 に答える 6

965

次の構文を使用できます。

if myItem in some_list:
    # do something

また、逆演算子:

if myItem not in some_list:
    # do something

リスト、タプル、セット、ディクテーション (キーのチェック) で問題なく動作します。

これは、リストとタプルでは O(n) 操作ですが、セットと辞書では O(1) 操作であることに注意してください。

于 2012-10-17T12:21:03.770 に答える
69

他の人が言ったことに加えて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
>>>         
于 2012-10-17T12:36:43.403 に答える
5

listメソッドindex-1、アイテムが存在しない場合は戻り、存在する場合はリスト内のアイテムのインデックスを返します。または、ifステートメントで次のことを行うことができます。

if myItem in list:
    #do things

次のifステートメントを使用して、要素がリストにないかどうかを確認することもできます。

if myItem not in list:
    #do things
于 2012-10-17T12:22:43.537 に答える