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

时间:2019-09-25 03:58:07

标签: python arrays numpy

我正在尝试剪切数组中的值。我发现了函数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])

ab的值已被更改而未分配,而功能np.clip()仅与x一起使用。

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

有人可以为我解释np.clip()函数如何直接修改列表值。

1 个答案:

答案 0 :(得分:1)

不是因为np.clip函数。这是因为您在可变列表上使用了循环,因此可以修改元素的值。您可以在Immutable vs Mutable types处了解更多信息。