python列表切片
还是不懂为什么list2不变 list3会变(>_<) https://fishc.com.cn/thread-159176-1-1.html可以看看这个
列表是可变序列,当你直接对可变数据赋值到一个新的变量时
只是将新的变量名指向原先的数据,相当于重新取了个别名
例如你这里不进行切片直接赋值,只是将两个变量 list1、list2 指向同一个内存地址
所以只要这个内存地址的数据发生改变,自然所有指向这个内存地址的变量都会发生变化
而你用列表切片,或者 copy() 函数,是将列表进行重新拷贝,生成新的一个列表
即在内存重新开辟一个地址给新的拷贝列表,最后新的变量就指向这个新的列表,而不是拷贝前的列表
你可以用 id 函数进行打印他们的内存地址,看看是否相同就知道是不是指向相同的地址
这是列表的深拷贝和浅拷贝,可以百度详细了解下
页:
[1]