码迷,mamicode.com
首页 > 编程语言 > 详细

给数组赋值时,引用与数组切片的区别

时间:2020-02-02 11:48:41      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:pytho   div   运行   分配   利用   数组   nbsp   系统   highlight   

例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的地址一样

给数组赋值时,引用与数组切片的区别

标签:pytho   div   运行   分配   利用   数组   nbsp   系统   highlight   

原文地址:https://www.cnblogs.com/shnuxiaoan/p/12251430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!