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

站长

发表文章数:4245

深入Node.js的进程与子进程:从文档到实践

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

Linux系统实时数据同步inotify+rsync

未经允许不得转载:www.xssyun.com作者:站长, 转载或复制请以 超链接形式 并注明出处 xss云之家-资源网,新人技术交流平台,一个湖北娃的个人博客
原文地址:《给数组赋值时,引用与数组切片的区别》 发布于2020-02-02

分享到:
赞(0) 生成海报

长按图片转发给朋友

投稿赚钱
2020年在家赚取零花钱
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册