检查列表中是否存在实例

时间:2013-05-23 04:48:18

标签: python list

是否有内置函数来确定列表中是否存在类的实例? 目前我通过理解来做这件事

>>> class A:
...     pass
...     
>>> l1=[5,4,3,A(),8]
>>> e=[e for e in l1 if isinstance(e,A)]

1 个答案:

答案 0 :(得分:10)

  

any(iterable)

     

如果iterable的任何元素为true,则返回True。如果iterable为空,则返回False

>>> class A(object): # subclass object for newstyle class (use them everywhere)
        pass

>>> l1=[5,4,3,A(),8]
>>> any(isinstance(x, A) for x in l1)
True

使用generator expresson

(isinstance(x, A) for x in l1)

any结合,any可以短路并在找到第一个True值时返回True(与列表理解不同)。