鱼C论坛

 找回密码
 立即注册
查看: 950|回复: 6

[已解决]关于赋值的问题

[复制链接]
发表于 2019-4-10 23:54:19 | 显示全部楼层 |阅读模式

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

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

x
为什么:
>>>myname = 123
>>>yourname = myname
>>>myname =  321
>>>yourname
>>>123
但是:
>>>a = ['a','b','c','d']
>>>a2 = a
>>>a.pop(0)
>>>'a'
>>>a2
>>>['b','c','d']
求大神解答啊
最佳答案
2019-4-11 00:03:10
python列表的课后习题
https://fishc.com.cn/thread-133712-1-1.html
(出处: 鱼C论坛)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-4-11 00:02:18 | 显示全部楼层
@13572044595  刚才您给我解答了疑问。。我也不知道是我删了还是你删了,答案突然没有了。。。如果是我删的我真的很抱歉,我没怎么用过论坛。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-11 00:03:10 | 显示全部楼层    本楼为最佳答案   
python列表的课后习题
https://fishc.com.cn/thread-133712-1-1.html
(出处: 鱼C论坛)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-11 00:06:28 | 显示全部楼层
cwhsmile 发表于 2019-4-11 00:03
python列表的课后习题
https://fishc.com.cn/thread-133712-1-1.html
(出处: 鱼C论坛)

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

使用道具 举报

发表于 2019-4-11 00:13:07 | 显示全部楼层
int类型是不可变类型, 在你的例子里,
  1. >>>myname = 123
  2. >>>yourname = myname
复制代码

这里myname 和 yourname 指向的是同一个内存空间,里面的值是 123。

  1. >>>myname =  321
复制代码

是给 myname 重新分配了一片内存空间,里面的值是 321,而不是将原来内存空间里的 123 变为 321,因为 int 类型是不可变的。
所以,最后 myname 和 yourname 分别指向不同的内存空间,各有各的值。

list类型是可变类型
  1. >>>a = ['a','b','c','d']
  2. >>>a2 = a
复制代码

和上面同理,两个变量指向用一个内存空间,里面的值是一个列表,

  1. >>>a.pop(0)
复制代码

是将a与a2指向的同一个内存空间里的列表进行了更新,而不是为 a 重新分配了内存空间,因为list类型是可变的,
既然 a 与 a2 两者所指向的统一内存空间的值进行了改变,那么 a2 的值也会改变,这就很容易理解了。

点评

谢谢 非常好理解了  发表于 2019-4-19 17:48
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-11 01:03:22 | 显示全部楼层
luvarl 发表于 2019-4-11 00:02
@13572044595  刚才您给我解答了疑问。。我也不知道是我删了还是你删了,答案突然没有了。。。如果是我删的 ...

我自己删了,我感觉回答不对,所以删了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-11 02:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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