2015-09-21 1 views
5

Quel est le moyen le plus rapide de vérifier l'existence d'un certain type dans une liste?Vérifiez si la liste contient un type?

Je voudrais pouvoir faire ce qui suit:

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: Essayer de rester dans le monde du python 2.7. Mais les solutions 3.0 seront ok!

Répondre

10

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

+0

tout !!!! génial :-) Je ne trouvais que des solutions non pertinentes avec tout(). Merci! – visc

2

Vous pouvez utiliser any et isinstance.

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