我有以下代码:
存在一个numpy数组multidimensional_array
,它具有所有整数且没有零,或者在许多整数中为零:
zeros_list = []
for line in multidimensional_array: # if find any zeros, append to list 'zeros'
for x in line:
if x.any() == 0:
zeros_list.append(x)
else:
pass
for item in zeros:
if item == 0:
sys.stdout.write( 'True') # if there is a zero, True
else:
sys.stdout.write( 'False') # otherwise, False
不幸的是,这并没有正确运行。如果为零,则输出True
。如果没有,没有任何反应。每次我在python脚本script.py
中运行它时,它都应该重置。如何将其设置为运行“假”'?
答案 0 :(得分:4)
>>> import numpy as np
>>> A = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> (A==0).any()
False
>>> (A!=0).all()
True
>>> 0 not in A
True
>>> A = np.array([[1,2,3],[4,5,6],[7,0,9]])
>>> (A==0).any()
True
>>> (A!=0).all()
False
>>> 0 not in A
False
您的最终for
循环应该只是if
if zeros:
sys.stdout.write('True') # if there is a zero, True
else:
sys.stdout.write('False') # otherwise, False
答案 1 :(得分:3)
对不起它是一个[多维] numpy数组。 numpy数组中是否存在或没有一个零?这是测试
好吧,那会让我们到位。你可以简单地发出
0 in multidimensional_array
演示:
>>> import numpy as np
>>> test1 = np.arange(6).reshape(2,3)
>>> test1
array([[0, 1, 2],
[3, 4, 5]])
>>> 0 in test1
True
>>> test1[0][0] = 42
>>> test1
array([[42, 1, 2],
[ 3, 4, 5]])
>>> 0 in test1
False
答案 2 :(得分:2)
既然你说s是一个字符串,那么使用string.count()
>>> s = '112312390'
>>> s.count('0')
1
>>> s = '11231239'
>>> s.count('0')
0
>>>
答案 3 :(得分:0)
添加
import sys
zeros_list = []
string1 = input() #If you received the string this way, below code is valid.
for line in string1: # if find any zeros, append to list 'zeros'
for x in line:
if x == '0':#Here you should not check for digits when ciphering a string. Unless you put int(item) which could cause a TypeError
zeros_list.append(x)
else:
pass
for item in zeros_list:
if item == '0': #Here you should not check for digits when ciphering a string. Unless you put int(item) which could cause a TypeError
sys.stdout.write( 'True') # if there is a zero, True
else:
sys.stdout.write( 'False') # otherwise, False`
和
for item in zeros: #Did you mean zeros_list?
结束注释, any()不是内置的Python函数,这是在哪里发生的?请包含运行代码所需的所有代码。 击>
我的观点是纠正的,任何()都是useful function:D
您知道, 0在Python中作为布尔值为False。
if item == 0:
在第二个for循环中可能会有不同于您期望的结果。
答案 4 :(得分:-1)
如果你追加zeros_list,那么应该是:
for item in zeros_list: