有时我有一种情况,我想测试一个变量是否为0
或None
或不是。在纯Python,这简直是检查变量是否用Numpy数组定义?
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()
,但是这在不可迭代的对象上失败。
当然,我可以明确检查foo
是0
还是None
,但我想知道是否有更优雅的方式来做到这一点。
如何检查任意对象(可迭代与否)是否为True
?
更多Python的,它是'如果foo' - 这将适用于大多数事情。不幸的是,你必须特殊情况'numpy.ndarray'或者比0更复杂的其他类型,None,False,len()== 0等于False。 –
我通常检查numpy对象是None,数组是'None',但是这并不检查零。在这里看到一个类似的问题,http://stackoverflow.com/questions/5086178/python-how-to-check-if-array-is-not-empty – gg349