代码之家  ›  专栏  ›  技术社区  ›  Ha Bom

修改“for循环”中的列表值

  •  1
  • Ha Bom  · 技术社区  · 5 年前

    我正在尝试剪裁数组中的值。我找到了函数 np.clip() 它满足了我的需要。但是,它修改数组列表中数组值的方式让我感到困惑。代码如下:

    import numpy as np
    
    a = np.arange(5)
    b = np.arange(5)
    
    for x in [a,b]:
        np.clip(x, 1, 3, out=x)
    

    结果

    >>> a
    array([1, 1, 2, 3, 3])
    >>> b
    array([1, 1, 2, 3, 3])
    

    价值观 a b 已更改,但未分配 仅适用于 x

    有些问题是相关的,但它们使用列表的索引,例如 Modifying list elements in a for loop Changing iteration variable inside for loop in Python .

    0 回复  |  直到 5 年前
        1
  •  1
  •   Su Si    5 年前

    这不是因为 np.clip 功能。这是因为在可变列表上使用循环,所以可以修改元素的值。你可以看到这里 Immutable vs Mutable types 更多信息。