给数组赋值时,引用与数组切片的区别
Posted shnuxiaoan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给数组赋值时,引用与数组切片的区别相关的知识,希望对你有一定的参考价值。
例1:引用赋值
arr = [1, 2, 3, 4, 5, 6, 7] # 初始数组 print(id(arr), arr) arr = arr[1:3] # 类似于 aux = arr[1:3], arr = aux print(id(arr), arr)
运行结果: 4357105608 [1, 2, 3, 4, 5, 6, 7] 4357104200 [2, 3]
其实arr是aux的一个引用,而对于arr[1:3]系统会自动给其分配地址
所以前后arr的地址不一样
例2:数组切片赋值
arr = [1, 2, 3, 4, 5, 6, 7] # 初始数组 print(id(arr), arr) arr[:] = arr[1:3] print(id(arr), arr)
运行结果: 4357105608 [1, 2, 3, 4, 5, 6, 7] 4357105608 [2, 3]
arr[:]相当于利用原arr的地址只是将arr[1:3]切片的值继续传递,而并非引用
所以前后arr的地址一样
以上是关于给数组赋值时,引用与数组切片的区别的主要内容,如果未能解决你的问题,请参考以下文章