我有一个浮点数数组,我想使用for循环用不同的值重新赋值,但PyCharm说没有使用新的变量赋值。
如果有的话,说:
for i in array:
i = i * 5
它将说我是一个未使用的变量。我在做什么错了?
答案 0 :(得分:4)
您需要为数组元素分配值。否则,数组将保持不变。有两种方法。
以当前尝试为起点,可以使用enumerate
。给定输入array
:
for idx, val in enumerate(array):
array[idx] = val * 5
但是,这没有利用NumPy向量化的优势。您可以简单地使用:
array *= 5
答案 1 :(得分:1)
应该是:
for i in range(len(array)):
array[i] = array[i] * 5
您所做的是创建一个临时变量“ i”,该变量仅在每次循环迭代中存在,并使用列表中元素的值进行初始化,然后将其删除。
更Python化的方式是:
array = [i*5 for i in array]