python-如何使用for循环重新分配数组中的元素

时间:2018-09-26 13:10:36

标签: python arrays numpy variable-assignment

我有一个浮点数数组,我想使用for循环用不同的值重新赋值,但PyCharm说没有使用新的变量赋值。

如果有的话,说:

for i in array:
    i = i * 5

它将说我是一个未使用的变量。我在做什么错了?

2 个答案:

答案 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]