【问题标题】:python - how to reassign element in array with for looppython - 如何使用for循环重新分配数组中的元素
【发布时间】:2018-09-26 13:10:35
【问题描述】:

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

如果我有,说:

for i in array:
    i = i * 5

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

【问题讨论】:

  • i0 = array[0]; i0 = i0 * 5; i1 = array[1]; i1 = i1 * 5;...作用相同,与array[0] = array[0] * 5; array[1] = array[1] * 5;...不一样。

标签: python arrays numpy variable-assignment


【解决方案1】:

您需要为数组元素赋值。否则你的数组将保持不变。有几种方法。

以您当前的尝试为起点,您可以使用enumerate。给定输入array

for idx, val in enumerate(array):
    array[idx] = val * 5

但这并没有利用 NumPy 矢量化。您可以简单地使用:

array *= 5

【讨论】:

    【解决方案2】:

    应该是:

    for i in range(len(array)):
        array[i] = array[i] * 5
    

    您所做的是创建一个临时变量“i”,它仅在每次循环迭代中存在,它使用列表中元素的值进行初始化,然后将其删除。

    一个更 Pythonic 的方式是:

    array = [i*5 for i in array]
    

    【讨论】:

      猜你喜欢
      • 2022-07-07
      • 2020-02-16
      • 2010-12-27
      • 1970-01-01
      • 2021-11-22
      • 2018-11-12
      • 2012-05-20
      • 1970-01-01
      • 2020-08-10
      相关资源
      最近更新 更多