2015-09-21 3 views
5

リスト内の特定のタイプの存在を確認できる最も速い方法は何ですか?リストにタイプが含まれているかどうかを確認しますか?

は、私は次の操作を行うことがしたい:

class Generic(object) 
    ... def ... 
class SubclassOne(Generic) 
    ... def ... 
class SubclassOne(Generic) 
    ... def ... 

thing_one = SubclassOne() 
thing_two = SubclassTwo() 
list_of_stuff = [thing_one, thing_two] 

if list_of_stuff.__contains__(SubclassOne): 
    print "Yippie!" 

EDITます:python 2.7の世界内に収まるようにしようとしています。しかし、3.0のソリューションは大丈夫です!

答えて

10

if any(isinstance(x, SubclassOne) for x in list_of_stuff):

+0

any !!!!素晴らしい:-)私はall()で無関係な解を見つけるだけでした。ありがとう! – visc

2

あなたはanyisinstanceを使用することができます。

if any(isinstance(item, SubClassOne) for item in list_of_stuff): 
    print "Yippie!" 
関連する問題