Python 在函数中操纵全局数组的值 请考虑以下两个例子。 例1: def f(inp): inp[0] = 42 inp.append(12) inp.append(13) v = [1, 2, 3, 4] f(v) print(v) >>> [42, 2, 3, 4, 12, 13]
下面是示例2:Python 在函数中操纵全局数组的值 请考虑以下两个例子。 例1: def f(inp): inp[0] = 42 inp.append(12) inp.append(13) v = [1, 2, 3, 4] f(v) print(v) >>> [42, 2, 3, 4, 12, 13],python,arrays,numpy,call,Python,Arrays,Numpy,Call,下面是示例2: def g(inp): inp[0] = 42 np.append(inp, [12, 13]) u = np.array([1, 2, 3, 4]) g(u) print(u) >>> [42 2 3 4] 在第一种情况下,函数可以更改全局列表的元素并将其追加。这是因为Python通过引用调用函数。但为什么第二个函数可以更改全局数据数组的值,但不能附加到它 : arr:将值追加到此数组的副本 因此,您正在修改g()中的本地副本 ar
def g(inp):
inp[0] = 42
np.append(inp, [12, 13])
u = np.array([1, 2, 3, 4])
g(u)
print(u)
>>> [42 2 3 4]
在第一种情况下,函数可以更改全局列表的元素并将其追加。这是因为Python通过引用调用函数。但为什么第二个函数可以更改全局数据数组的值,但不能附加到它 :
arr:将值追加到此数组的副本
因此,您正在修改g()中的本地副本
arr:将值追加到此数组的副本
因此,您正在修改g()中的本地副本