我试图在给定特定条件的情况下更新数组的值,使用以下代码:
a=[np.inf, 2, 3]
for i in range(0,10):
a[0] = 100 if a[0] == np.inf else a.append(1)
print(a)firs迭代运行得很好,并且每100次更改无穷大值。但是,在随后的迭代中,它添加数字1,但通过None更改数组的第一个值。
[100, 2, 3]
[None, 2, 3, 1]
[None, 2, 3, 1, 1]
...
[None, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1]为什么会发生这种情况?
发布于 2021-07-09 23:20:08
你的产品线
a[0] = 100 if a[0] == np.inf else a.append(1)可以写成
if a[0] == np.inf:
a[0] = 100
else:
a[0] = a.append(1)我相信你可以看到问题所在。三元函数if选择了一个要使用的值,您不能以您正在尝试的方式使用它。
我怀疑你把它理解为
(a[0] = 100) if a[0] == np.inf else a.append(1)当它实际上
a[0] = (100 if a[0] == np.inf else a.append(1))https://stackoverflow.com/questions/68319105
复制相似问题