鱼C论坛

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

关于PYTHON变量与C变量的区别

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

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

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

x
在011谭后题有这样一个题

5. 课堂上小甲鱼说可以利用分片完成列表的拷贝 list2 = list1[:],那事实上可不可以直接写成 list2 = list1 更加简洁呢?

解释是不可以,意思就是如果直接list2 = list1的话,相当于类似只是增加了一个指针,它指向list1指向的那一片列表的空间,如果list1变了,list2会跟着变

042949n159vjspz1ach8o2.png

我试了一下,确实是。


但是,我用单个变量试了一下,又不是

这是为什么呢

捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 22:36:18 From FishC Mobile | 显示全部楼层
你搜一下python  可哈希对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 22:37:33 | 显示全部楼层
把一个列表直接赋值为另外一个列表的话即使是与它相关联的列表也不会变化
可以理解为两个关联列表是一个列表贴上两个不一样名字的标签,比如a和b,但是我在直接赋值来更改a时是把a撕下来,贴到另外一个列表上,所以b不会变化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 22:37:42 From FishC Mobile | 显示全部楼层
这样表示新建一个同名变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 22:58:26 | 显示全部楼层
本帖最后由 5695585 于 2020-5-6 22:59 编辑
老八秘制 发表于 2020-5-6 22:37
把一个列表直接赋值为另外一个列表的话即使是与它相关联的列表也不会变化
可以理解为两个关联列表是一个列 ...


那么我下面那个单独的一个数字的变量为什么不跟着变呢


>>> name = 3
>>> name1 = name
>>> name1
3
>>> name = 2
>>> name1
3

name已经变成2了   
name1还是3
似乎专门为name1分配了内存
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 23:00:37 | 显示全部楼层
5695585 发表于 2020-5-6 22:58
那么我下面那个单独的一个数字的变量为什么不跟着变呢

直接赋值的时候只有列表会关联,整型变量不会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 23:04:19 | 显示全部楼层
这个关系,建议看下老男孩的变量教程那几集,解释的很清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 09:26:56 | 显示全部楼层
在python中,整型int、字符串string、列表list、集合set、字典dict等等都可称之为对象,而这些不同类型的对象是有区别的,可以分为两类:不可变类型对象和可变类型对象。数字numbers、字符串string、元组tuples等是不可变类型对象,列表list、字典dict、集合set等是可变类型对象。

不可变类型对象就是一旦生成,就不可更改的对象,而可变类型对象是生成之后可以进行增删改等修改操作的对象。
python细节之2、变量名与标签 变量的赋值与修改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 10:12:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 01:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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