2015-09-21 11 views
5

Was ist der schnellste Weg, den ich für eine bestimmte Arten Existenz in einer Liste überprüfen kann?Prüfen, ob die Liste einen Typ enthält?

Ich wünschte, ich könnte folgendes tun:

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: Der Versuch, in der Python 2.7 Welt zu bleiben. Aber 3.0 Lösungen werden in Ordnung sein!

Antwort

10

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

+0

any !!!! genial :-) Ich fand bei allen nur irrelevante Lösungen(). Vielen Dank! – visc

2

können Sie any und isinstance verwenden.

if any(isinstance(item, SubClassOne) for item in list_of_stuff): 
    print "Yippie!" 
Verwandte Themen