python - 无法更改 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)
解决方案
改变:
if ((i+1)%(j+1) == 0 & L2[j] == 1) :
至
if ((i+1)%(j+1) == 0 and L2[j] == 1) :
第一个是数学运算。同样为了调试这些类型的问题,我通常在 if 语句中添加一个打印项以确保它正常工作。我希望这有帮助!
推荐阅读
- javascript - ReferenceError: $ 未定义 (WebdriverIO)
- javascript - 将缩放和旋转值重置为零 Onclick 按钮
- c# - 当用户登录时更改连接字符串
- c - 这个缓冲区怎么会溢出?
- android - 单击工具栏中的搜索按钮后视图未正确显示
- google-cloud-functions - 带有 pub sub 触发器的云功能不适用于跨区域
- javascript - 如何在 Javascript 中获取上一个日期?
- php - 如何根据不同的变量保存变量?
- jquery - $ 不是函数 - 嵌套函数
- c# - 有没有办法“加载”浏览器但不显示任何内容?头孢夏普