鱼C论坛

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

[已解决]引用类型和非引用类型

[复制链接]
发表于 2023-6-4 22:41:15 | 显示全部楼层 |阅读模式

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

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

x
微信截图_20230604224017.jpg

上图这样归类是否正确?尤其是蓝色字体部分
最佳答案
2023-6-4 22:55:58
lzb1001 发表于 2023-6-4 22:52
看下我回复的贴,感谢大神你还帮我整理了下,哈哈哈


ok,另外说你的问题,说的是对的,两个知识点帮忙补充:
1. 集合,也属于可变类型,同列表字典的特性
2.
  1. a = (0, [1, 2, 3], (4, 5, 6), {})
  2. a[1][0] = -4
  3. # a[2][1] = 3 #报错
  4. a[3]["test"] = "fishc.com"
复制代码

上面代码并没有改变元组,这充分体现了可变类型只是一个地址而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-4 22:45:24 | 显示全部楼层
对滴~听说你从不设最佳?有人叫我别回答你问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-4 22:49:11 | 显示全部楼层
本帖最后由 lzb1001 于 2023-6-4 22:51 编辑
歌者文明清理员 发表于 2023-6-4 22:45
对滴~听说你从不设最佳?有人叫我别回答你问题


不是吧,哪位说的,太不负责了,有拿到最佳的大神出来替我说句公道话

最近可能几个问题困,在几位大神的帮助下我自己一直在努力消化和理解,有点晕可能有的漏了点,这两天梳理下都补上哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-4 22:50:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-4 22:52:26 | 显示全部楼层


看下我回复的贴,感谢大神你还帮我整理了下,哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-4 22:55:58 | 显示全部楼层    本楼为最佳答案   
lzb1001 发表于 2023-6-4 22:52
看下我回复的贴,感谢大神你还帮我整理了下,哈哈哈


ok,另外说你的问题,说的是对的,两个知识点帮忙补充:
1. 集合,也属于可变类型,同列表字典的特性
2.
  1. a = (0, [1, 2, 3], (4, 5, 6), {})
  2. a[1][0] = -4
  3. # a[2][1] = 3 #报错
  4. a[3]["test"] = "fishc.com"
复制代码

上面代码并没有改变元组,这充分体现了可变类型只是一个地址而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-4 23:10:08 | 显示全部楼层
本帖最后由 lzb1001 于 2023-6-4 23:13 编辑
歌者文明清理员 发表于 2023-6-4 22:55
ok,另外说你的问题,说的是对的,两个知识点帮忙补充:
1. 集合,也属于可变类型,同列表字典的特性
...


感谢大神的指点。

首先,请教一下,下面的a是个元组,它是一个集合吗?

其次,请帮我看看下面红色的注释是否正确,谢谢!

>>> a = (0, [1, 2, 3], (4, 5, 6), {})
>>> a[0] = 'a'
Traceback (most recent call last):
  File "<pyshell#117>", line 1, in <module>
    a[0] = 'a'
TypeError: 'tuple' object does not support item assignment # 因为a集合为元组类型,元组保存的是实际值,属于不可变类型,所以返回“元组对象不支持元素指定”的错误提示
>>> a[1]
[1, 2, 3]
>>> a[1][0]
1
>>> a[1][0] = -4 # a集合中的[1, 2, 3]是列表,引用内存地址,属于可变类型,支持更改或指定
>>> a
(0, [-4, 2, 3], (4, 5, 6), {})
>>> a[2][1] = 3
Traceback (most recent call last):
  File "<pyshell#114>", line 1, in <module>
    a[2][1] = 3
TypeError: 'tuple' object does not support item assignment # 因为a集合中的(4, 5, 6)为元组类型,元组保存的是实际值,属于不可变类型,所以返回“元组对象不支持元素指定”的错误提示
>>> a[3]['test'] = 'FishC.com' # 为a集合中的空字典指定键key和值value
>>> a
(0, [-4, 2, 3], (4, 5, 6), {'test': 'FishC.com'}) # 因为a集合中的空字典{}是引用内存地址,属于可变类型,支持更改或指定
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-4 23:17:54 | 显示全部楼层
lzb1001 发表于 2023-6-4 23:10
感谢大神的指点。

首先,请教一下,下面的a是个元组,它是一个集合吗?

对,理解正确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-4 23:38:25 | 显示全部楼层
歌者文明清理员 发表于 2023-6-4 22:50
https://fishc.com.cn/thread-229084-1-1.html
https://fishc.com.cn/thread-229069-1-1.html
https:// ...

你是真的6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 11:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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