无法更改numpy数组中的值

时间:2019-11-19 05:37:16

标签: python arrays numpy

我的代码应获取一个具有零个或1个值的数组,如果任何元素为0,则应将其切换为1,并切换其除数的状态。问题是第二个if似乎不起作用,并且不能将1状态更改为0。我不明白为什么,有人可以帮助我吗?

data = input()
L = list(data.split())
L2 = np.array(L,int)
L3 = np.zeros(len(L2),int)
for i in range(len(L2)-1, -1, -1):
    if ( L2[i] == 0) :
        L2[i] = 1
        L3[i] = 1

        for j in range(0, i) : 
            if ((i+1)%(j+1) == 0 & L2[j] == 0) :
                L2[j] = 1

            if ((i+1)%(j+1) == 0 & L2[j] == 1) :
                L2[j] =0  #this does not work



print(*L3)

1 个答案:

答案 0 :(得分:1)

更改:

  if ((i+1)%(j+1) == 0 & L2[j] == 1) :

 if ((i+1)%(j+1) == 0 and L2[j] == 1) :

第一个是数学运算。另外,为了调试这些类型的问题,我通常在if语句中添加一个打印项目以确保其正常工作。我希望这会有所帮助!