我想分配给d无论是a或,如果a是None,b或者,如果b是也None,c。这有效:
a = b = c = np.array([1])
d = a or b or c
Run Code Online (Sandbox Code Playgroud)
但是,这不会:
a = b = c = np.array([1, 2])
d = a or b or c
Run Code Online (Sandbox Code Playgroud)
ValueError:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()
显然,或者正在逐元素地用于具有多个元素的数组。我可以做什么来实现
d = a or b or c
Run Code Online (Sandbox Code Playgroud)
使用 NumPy 数组?
我想分配给
d无论是a或,如果a是None,b或者,如果b是也None,c。
然后逐字检查None:
d = a if a is not None else b if b is not None else c
Run Code Online (Sandbox Code Playgroud)
您的版本适用于单元素数组的事实是它们真实性的副作用。它不会像你期望的那样做:
a = np.array([0])
b = "wat"
c = a or b
Run Code Online (Sandbox Code Playgroud)
c现在会"wat",即使a不是None。