2015-09-21 17 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!" 

संपादित करें: अजगर 2.7 दुनिया के भीतर रहने की कोशिश कर रहा। लेकिन 3.0 समाधान ठीक रहेगा!

उत्तर

10

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

+0

कोई भी !!!! भयानक :-) मुझे केवल सभी के साथ अप्रासंगिक समाधान मिल रहा था()। धन्यवाद! – visc

2

आप any और isinstance उपयोग कर सकते हैं।

if any(isinstance(item, SubClassOne) for item in list_of_stuff): 
    print "Yippie!" 
संबंधित मुद्दे