9

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

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

1 回答 1

16

any(iterable)

True如果可迭代的任何元素为真,则返回。如果迭代为空,则返回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

通过使用生成器表达式

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

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

于 2013-05-23T04:49:45.507 回答