python - 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 进行比较怎么办
解决方案
如果你说 B=A 其中 A 是一个数组,Python 只会创建一个指向 A 的新指针你可以这样做
A = B[:]
复制数组
推荐阅读
- junit5 - 如何使用 JUnit5 在 Micronaut 的控制器测试中模拟服务类?
- java - 应用已安装但未在 android 模拟器上显示
- amazon-web-services - Terraform 和 AWS:ACM 证书从未经过验证
- wpf - PrintDialog.PrintVisual 用于非活动的 VisualElements?
- javascript - string[] 和 [string,string,string] 有什么区别
- asp.net-core-2.1 - 使用 EntityFramework Core 2.1 为具有关注者和关注者的 ApplicationUsers 创建模型
- c# - ThreadPool - MaxThreads - AvailableThreads = 当前的 ThreadPool 线程数?
- java - Eclipse Step Over 未按预期工作 - Tomcat Web 应用程序调试
- python - Networkx TypeError:输入图不是networkx图类型
- ruby-on-rails - 当我可以制作一个简单的 has_many/belongs_to 时,为什么还要使用多态关系?