运行 当布尔条件为真时循环
run while loop while a boolean condition is true
我有一个 2D numpy 数组 (400x400),虽然这个数组中有零,但我想 运行 一个 while 循环,直到经过几次迭代后它们都被删除。所以在 while 块中,我在每次迭代中删除了一些零。从 我剪下代码以检查我的数组中是否还有零:
check = 0 in array
这个 returns 一个 'True' 或一个 'False' 并且正在工作。现在我想在 while 循环的开头使用它,我希望它像下面这样工作:
while 0 in array == True:
'do sth.'
相反,我收到以下错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我可以做一个解决方法,在每个 while 循环的末尾我将 'check = 0 in array' 的结果写入另一个变量并在 while 循环的开头检查这个变量,但我认为应该有更好的方法。
如果我没看错你的问题,这就是你想要的:
array = [[20,0],[11, 1]]
count = 0
while count < len(array):
if 0 in array[count]:
print("Found zero")
count += 1
输出:
[20, 0]
Found zero
[11, 1]
Python 将其解析为
while 0 in (array==True):
当然是指哪里
while (0 in array) == True:
不过当然写得更好
while 0 in array:
Python 的流控制条件已经隐式地将每个表达式转换为 "truthiness" 值,即 True
或 False
。进一步了解
我有一个 2D numpy 数组 (400x400),虽然这个数组中有零,但我想 运行 一个 while 循环,直到经过几次迭代后它们都被删除。所以在 while 块中,我在每次迭代中删除了一些零。从
check = 0 in array
这个 returns 一个 'True' 或一个 'False' 并且正在工作。现在我想在 while 循环的开头使用它,我希望它像下面这样工作:
while 0 in array == True:
'do sth.'
相反,我收到以下错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我可以做一个解决方法,在每个 while 循环的末尾我将 'check = 0 in array' 的结果写入另一个变量并在 while 循环的开头检查这个变量,但我认为应该有更好的方法。
如果我没看错你的问题,这就是你想要的:
array = [[20,0],[11, 1]]
count = 0
while count < len(array):
if 0 in array[count]:
print("Found zero")
count += 1
输出:
[20, 0]
Found zero
[11, 1]
Python 将其解析为
while 0 in (array==True):
当然是指哪里
while (0 in array) == True:
不过当然写得更好
while 0 in array:
Python 的流控制条件已经隐式地将每个表达式转换为 "truthiness" 值,即 True
或 False
。进一步了解