8

有时我有一种情况,我想测试一个变量是否0存在None。在纯 Python 中,这很简单

foo == True

但是当foo可能是一个 Numpy 对象(例如numpy.ndarray)时,这不再起作用,我收到错误:

ValueError: The truth value of an array with more than one element is ambiguous. 
 Use a.any() or a.all()

在这种情况下,我想要a.any(),但是这在不可迭代的对象上失败了。

当然我可以明确地检查 if foois 0or None,但我想知道是否有更优雅的方法来做到这一点。

如何检查任意对象(可迭代和不可迭代)是否True存在?

4

2 回答 2

2

只需使用np.allornp.any代替该.all方法。np.all如果它还不是一个数组,它将创建一个数组。

于 2012-10-19T12:09:04.463 回答
1

我使用的方法是假设 try except 块中存在变量来包围语句:

try:
    do_something(foo)
except NameError:
    foo = something
于 2012-10-19T12:07:24.757 回答