鱼C论坛

 找回密码
 立即注册
查看: 1039|回复: 8

[已解决]没有操作list1,为什么list1的值会扩展?

[复制链接]
发表于 2020-3-22 10:10:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请教各位,下面代码,已经把list1赋给了temp,也在temp的基础上进行的extend,而且并没有操作list1,为什么list1的值也被扩展了?

list1 = [123, 456]
list2 = [234, 123]
temp = list1
temp.extend(list2)
list3 = temp




结果
list1 = [123, 456, 234, 123]
list2 = [234, 123]
temp = [123, 456, 234, 123]
list3 = [123, 456, 234, 123]
最佳答案
2020-3-22 10:45:18
vvv3449860 发表于 2020-3-22 10:34
谢谢你的解答,确实可行。另一个问题是:关于list1[:]我可不可以理解为把list1复制了一遍,再把这个复制 ...

是的,你要是没有[:]就把地址也复制过去了,这样他俩基本就是"一个"了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-22 10:14:52 | 显示全部楼层
因为 temp 和 list1 指向的是同一个内存地址,改成这样就不会了:
temp = list1[:]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-22 10:34:56 | 显示全部楼层
一个账号 发表于 2020-3-22 10:14
因为 temp 和 list1 指向的是同一个内存地址,改成这样就不会了:

谢谢你的解答,确实可行。另一个问题是:关于list1[:]我可不可以理解为把list1复制了一遍,再把这个复制的值赋值给temp,这样原有的list1就不会被改变了呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 10:45:18 | 显示全部楼层    本楼为最佳答案   
vvv3449860 发表于 2020-3-22 10:34
谢谢你的解答,确实可行。另一个问题是:关于list1[:]我可不可以理解为把list1复制了一遍,再把这个复制 ...

是的,你要是没有[:]就把地址也复制过去了,这样他俩基本就是"一个"了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-22 10:48:23 | 显示全部楼层
qiuyouzhi 发表于 2020-3-22 10:45
是的,你要是没有[:]就把地址也复制过去了,这样他俩基本就是"一个"了。

懂了,阿里嘎多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 10:50:16 | 显示全部楼层

那就设个最佳答案吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 11:00:09 | 显示全部楼层
temp = list1[:] 并不是深拷贝 建议上网搜搜 深拷贝和浅拷贝。 这个方法属于浅拷贝
比如list1 = [1,2,[1,2,3]]
temp = list1[:]
temp[1] = 1000
temp[2][0]=22
那么list1变成 [1,2,[22,2,3]]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 11:20:23 | 显示全部楼层

那就设为最佳答案吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 19:04:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表