鱼C论坛

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

11课 测试题05 list2=list1的联想问题

[复制链接]
发表于 2015-12-30 14:42:38 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 kunaiai 于 2015-12-30 15:35 编辑

list2=list1 list1.sort insert时  list2会跟这变

但是 list1=[5,6]  list2就不会跟着变了  这是为什么呢
>>> list1 = [1,2,3]
>>> list2 = list1
>>> list1
[1, 2, 3]
>>> list2
[1, 2, 3]
>>> list1.append('4')
>>> list1
[1, 2, 3, '4']
>>> list2
[1, 2, 3, '4']

>>> list1=[5,6]
>>> list2
[1, 2, 3, '4']
>>> list1
[5, 6]
>>>
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-30 15:02:14 | 显示全部楼层
list2=list1是给list1多起一个叫list2的名字
list1=[5,6]是生成一个新的list

评分

参与人数 1荣誉 +5 鱼币 +3 收起 理由
~风介~ + 5 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-30 15:05:03 | 显示全部楼层
这是python可变变量和不可变变量的问题。简单的说,不可变变量在值改变时会在一个新的内存地址重新生成一个变量,而可变变量改变时在原地址修改。列表是可变变量,list1和list2都指向一个地址,使用sort,append等方法都是在原地址修改,所以两者是同步变化的。而给list1重新赋值,则是使list1指向了一个新地址,而list2还是老地址,所以不跟着变。你可以用id()跟踪一下地址看看。

评分

参与人数 1荣誉 +5 鱼币 +3 收起 理由
~风介~ + 5 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-30 15:10:10 | 显示全部楼层
list1 = [5,6]从新在内存生成1个list1的变量 不管之前有没list1  就是和以前的list1和list2没什么关系了

[1,2,3,4]上有标签list1和list2
现在list1=[5,6]
[5,6]上有标签list1
[1,2,3,4]只有标签list2

是这样吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-30 15:13:46 | 显示全部楼层
kunaiai 发表于 2015-12-30 15:10
list1 = [5,6]从新在内存生成1个list1的变量 不管之前有没list1  就是和以前的list1和list2没什么关系了

...

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-30 15:34:58 | 显示全部楼层
多谢各位了  明白了
=赋值的时候是会重新分配内存的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-31 09:30:31 | 显示全部楼层
等号后面的才是一个对象,前面的只是一个代号而已
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2016-1-25 08:38:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-19 23:54:45 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-19 01:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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