鱼C论坛

 找回密码
 立即注册
查看: 2721|回复: 4

不知道如何描述的一道问题。。求助

[复制链接]
发表于 2016-1-9 15:00:00 | 显示全部楼层 |阅读模式
30鱼币
问题.png



如图 同样都是后来把a的值赋给c,同样又都修改了c的值,为什么在下面字典的那个情况中,a也跟着一起变了,上面那个整型的情况里,a却还是原来的值?

最佳答案

查看完整内容

http://bbs.fishc.com/thread-67532-1-1.html http://bbs.fishc.com/home.php?mod=space&uid=347147&do=blog&id=3092 你可以看看 善用id()查看变量的内存地址 c=a后 c和a都指向同一个地址 但是区别在于c=2是又从新建了变量c(就是从新分配了新的内存地址)以前的变量c就没了 这时id(a)!=id(c) c[4]='four'是在原来的c变量上修改 内存地址不变
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-9 15:00:01 | 显示全部楼层
http://bbs.fishc.com/thread-67532-1-1.html
http://bbs.fishc.com/home.php?mo ... do=blog&id=3092
你可以看看  善用id()查看变量的内存地址
c=a后  c和a都指向同一个地址

但是区别在于c=2是又从新建了变量c(就是从新分配了新的内存地址)以前的变量c就没了 这时id(a)!=id(c)
  c[4]='four'是在原来的c变量上修改 内存地址不变
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-9 15:34:30 | 显示全部楼层
偷个懒,把讲义的内容搬过来

5.1.9  关于分片“拷贝”概念的补充

上一节我们提到使用分片创建列表的拷贝:

  1. >>> list1 = [1, 3, 2, 9, 7, 8]
  2. >>> list2 = list1[:]
  3. >>> list2
  4. [1, 3, 2, 9, 7, 8]
  5. >>> list3 = list1
  6. >>> list3
  7. [1, 3, 2, 9, 7, 8]
复制代码

看似一样,对吧?但事实上呢?我们利用列表的一个小伙伴做下修改,大家看一下差别:

  1. >>> list1.sort()
  2. >>> list1
  3. [1, 2, 3, 7, 8, 9]
  4. >>> list2
  5. [1, 3, 2, 9, 7, 8]
  6. >>> list3
  7. [1, 2, 3, 7, 8, 9]
复制代码

我们可以看到list1已经从小到大排了个序,那list2和list3呢?使用分片方式得到的list2很有原则、很有格调,并不会因为list1的改变而改变,这个原理我待会儿跟大家说;我们接着看下list3……看,真正的汉奸、墙头草是list3,它竟然跟着list1改变了,这是为什么呢?

不知道大家还记不记得我们在讲解变量的时候说过,Python的变量就像一个标签,就一个名字而已……我还是给大家伙画个图好理解,如图所示:

1.png

这下大家应该明白了吧,在为一个列表指定另一个名字的做法,只是向同一个列表增加一个新的标签而已,真正的拷贝是要使用分片的方法。这个也是初学者最容易混淆的地方,大家以后写代码时一定要注意哦。

评分

参与人数 2荣誉 +3 鱼币 +3 收起 理由
碗碗的泡菜坛 + 2 + 2 小甲鱼老湿居然一下子回答了人家的两个问题.
hldh214 + 1 + 1 热爱鱼C^_^

查看全部评分

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

使用道具 举报

 楼主| 发表于 2016-1-9 17:35:00 | 显示全部楼层
kunaiai 发表于 2016-1-9 15:00
http://bbs.fishc.com/thread-67532-1-1.html
http://bbs.fishc.com/home.php?mod=space&uid=347147&do=bl ...

到你发的帖子里看了遍 恍然大悟 赋值的时候重新分配内存 明白~~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-9 22:30:39 | 显示全部楼层
看来以后可以打印id看看,学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-19 04:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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