web-dev-qa-db-ja.com

PythonのHashSet <Integer>を含む

JavaがありますHashSet<Integer>、Pythonを使用するには、次のようなものが含まれています。

A = [1, 2, 3]
S = set()
S.add(2)
for x in A:
    if S.contains(x):
        print "Example"

手伝ってもらえますか?

33
Borys Stepov

セットを使用するだけです:

>>> l = set()
>>> l.add(1)
>>> l.add(2)
>>> 1 in l
True
>>> 34 in l
False

リストでも同じことができます:

>>> ll = [1,2,3]
>>> 2 in ll
True
>>> 23 in ll
False

Edit:以下の@bholagabbarのコメントに注意してください。リストとタプルのinチェックの時間の複雑さはO(n)平均(python docs here )を参照してください。セットに対しては平均O(1) =(最悪の場合もO(n)ですが、非常にまれであり、__hash__は実装が不十分です。

46
tttthomasssss