2015-09-21 51 views
5

Listede belirli tür varlığını kontrol etmenin en hızlı yolu nedir?Listenin bir türü olup olmadığını kontrol edin?

Ben şu yapmak isterdim:

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!" 

DÜZENLEME: piton 2.7 dünyada kalmaya çalışıyorum. Ama 3.0 çözümleri iyi olacak!

cevap

10

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

+0

any !!!! harika :-) Ben sadece() ile alakasız çözümler buluyordum. Teşekkürler! – visc

2

Sen any ve isinstance kullanabilirsiniz.

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