检查列表中是否存在实例

IUn*_*own 4 python list

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

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

jam*_*lak 10

any(iterable)

True如果iterable的任何元素为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
Run Code Online (Sandbox Code Playgroud)

通过使用发电机expresson

(isinstance(x, A) for x in l1)
Run Code Online (Sandbox Code Playgroud)

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

  • 您可能想在这里提到使用生成器的好处是,只要找到“True”值,“any”就会短路并返回“True”。 (2认同)