数组是任何一门编程语言中最最基础不过的数据结构,今天阿灏给大家带来的是Python中的数组拷贝操作,因为这个操作极其重要,又极其易错。
我们举一个例子:
然后我问你:
你觉得应该输出多少?(可以思考3秒🤔)
如果跟下面的答案一样:说明你的基础应该过关了:
但是仍然免不了有不少人会有一些误解,明明只是改动了数组b中的第1个元素的值,为何结果连数组a的第一个元素值也变了???
所有编程语言,每个变量,不管是简单类型,还是基本类型,在运行的时候,总会对应到内存中的一个地址,所以我们不妨来看下数组a和数组b的地址是多少?
我们看到实际上这两个数组的地址是一样的,所以b=a这个操作相当于是让数组b指向了数组a所在的内存地址,结果就是他两指向了同一个地址,所以修改a数组的元素就相当于在改变b数组的元素,你可能会觉得有点像c/c++语言中的指针操作。
看到这里你可能又想问,那如果我是要拷贝一个独立的数组出来,跟原来的数组脱离关系,那应该怎么做呢?我们也可以大胆预判下,要想两个数组自身的改变互不影响对方,那么他两的地址肯定是不同的,我们用copy这个api来复制一个独立的数组。
这样才是真正的复制了一个独立的数组,我们看到修改数组c中的第一个元素压根就不影响数组a的元素,再来打印下这两个数组的地址,以证实我们的猜测:
真相大白了,亲自尝试下,更加精彩。
声明:来自程序员阿灏,仅代表创作者观点。链接:https://eyangzhen.com/3604.html