2015-09-21 19 views
5

Cách nhanh nhất để tôi có thể kiểm tra một loại tồn tại nhất định trong danh sách là gì?Kiểm tra xem danh sách có chứa loại không?

Tôi ước gì có thể làm như sau:

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: Đang cố gắng để ở lại trong python 2.7 trên thế giới. Nhưng 3,0 giải pháp sẽ được ok!

Trả lời

10

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

+0

bất kỳ !!!! tuyệt vời :-) Tôi chỉ tìm các giải pháp không liên quan với tất cả(). Cảm ơn! – visc

2

Bạn có thể sử dụng anyisinstance.

if any(isinstance(item, SubClassOne) for item in list_of_stuff): 
    print "Yippie!" 
Các vấn đề liên quan