首页 > 解决方案 > 无法更改 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)

标签: pythonarraysnumpy

解决方案


改变:

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

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

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


推荐阅读