ShirleyX 发表于 2021-6-27 19:25:19

python列表切片

还是不懂为什么list2不变 list3会变(>_<)

liuzhengyuan 发表于 2021-6-27 19:29:00

https://fishc.com.cn/thread-159176-1-1.html
可以看看这个

Twilight6 发表于 2021-6-27 19:33:02


列表是可变序列,当你直接对可变数据赋值到一个新的变量时

只是将新的变量名指向原先的数据,相当于重新取了个别名

例如你这里不进行切片直接赋值,只是将两个变量 list1、list2 指向同一个内存地址

所以只要这个内存地址的数据发生改变,自然所有指向这个内存地址的变量都会发生变化

而你用列表切片,或者 copy() 函数,是将列表进行重新拷贝,生成新的一个列表

即在内存重新开辟一个地址给新的拷贝列表,最后新的变量就指向这个新的列表,而不是拷贝前的列表

你可以用 id 函数进行打印他们的内存地址,看看是否相同就知道是不是指向相同的地址

fish_nian 发表于 2021-6-27 20:34:26

这是列表的深拷贝和浅拷贝,可以百度详细了解下
页: [1]
查看完整版本: python列表切片