首页 > 解决方案 > Python在函数调用后修改了原来的变量

问题描述

我想知道是否有人可以解释为什么 Python 在将原始变量分配给另一个变量然后将第二个变量传递给函数调用后修改它:考虑以下示例代码:假设 A 是原始变量:

A=np.array(([1,20,30,40,10,5,60]))
B=A

B.sort()
print(A)
print(B)

两者的输出是相同的:

[ 1  5 10 20 30 40 60] 
[ 1  5 10 20 30 40 60]

A是原始变量,我将其分配给B,然后对B进行排序,那么为什么A和B都进行了排序?如果我只想对 B 进行排序并将其与 A 进行比较怎么办

标签: pythonlistsortingvariables

解决方案


如果你说 B=A 其中 A 是一个数组,Python 只会创建一个指向 A 的新指针你可以这样做

A = B[:]

复制数组


推荐阅读