Python中b=a和b=a[:]到底有什么不同?新手必看
作者:0!+0!=3
还在为Python中修改变量后另一个也跟着变而困惑吗?本文用最直白的方式讲解赋值(b=a)和复制(b=a[:])的核心区别,帮你理解对象引用和内存地址,从此告别列表操作中的意外错误
Python中b=a和b=a[:]有什么不同
b=a 为赋值
赋值后,a和b两者指向的是同一对象,改动其中一个的元素,另一个也会跟着改
a=[1,2,3] b=a a.append(4) print(a,b) a=[1, 2, 3, 4] b=[1, 2, 3, 4]
b=a[:]为复制
此时a和b两者指向的是不同的对象,两者的元素改动不会互相影响
a=[1,2,3] b=a[:] a.append(4) print(a,b) a=[1, 2, 3, 4] b=[1, 2, 3]
python中,不同的对象为不同的内存地址,变量可以理解为对象的快捷方式
- 赋值后 ab指向的都是同一个对象
- 复制后 ab指向的是两个不同对象
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
