gpt4 book ai didi

python - isinstance 检查是否有任何变量具有特定类

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:02 26 4
gpt4 key购买 nike

如果任何参数是 np.ndarray,我有一个函数需要采用不同的路径。我正在检查 isinstance .但我想知道是否有比将列表理解与 any 一起使用更直观(和更快)的方法:

def func(a, b):
if any([isinstance(i, np.ndarray) for i in [a, b]]):
...
else:
...

我已经试过了:

if isinstance([a, b], np.ndarray):

但这不起作用,因为 [a, b] 是一个 list ...

最佳答案

实际上使用 any 是最 pythonic 的方式,因为它已经在 python 中实现如下:

def any(iterable):
for element in iterable:
if element:
return True
return False

并且将在您的可迭代对象中遇到一个 True 项目后立即返回 True 因此它的顺序在最好的情况下是 O(1),在最坏的情况下是 O(n)。关于 isinstance(),它是一个内置函数,是一种用于检查对象类型的 Pythonic 方式。

另外,作为一种更 pythonic 的方式,您最好将生成器表达式传递给 any 并让生成器函数按需生成项目,而不是列表理解并一次创建所有 bool 值。:

any(isinstance(i, np.ndarray) for i in [a, b])

正如@Padraic 所说,如果您只处理两个项目,最好的方法是使用 运算符:

if isinstance(a, np.ndarray) or isinstance(b, np.ndarray):
# do stuff

关于python - isinstance 检查是否有任何变量具有特定类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35523179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com