鱼C论坛

 找回密码
 立即注册
查看: 1804|回复: 5

[已解决]关于A[i] = [0] * 3,能这么写是因为变量可以是列表中的一个元素么

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

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

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

x
正在看第25讲的内容,有一个例子是这样的
>>> A = [0] * 3
>>> for i in range(3):
...     A[i] = [0] * 3
...
>>> A
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> A[1][1] = 1
>>> A
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]

想问一下,关于 A[i] = [0] * 3 这一句,能这么写是因为变量可以是列表中的一个元素么
最佳答案
2023-6-22 15:04:08
因为变量的本质是一个地址,而列表中的元素也是地址,所以列表中的元素可以被赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-22 15:04:08 | 显示全部楼层    本楼为最佳答案   
因为变量的本质是一个地址,而列表中的元素也是地址,所以列表中的元素可以被赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-22 15:11:31 | 显示全部楼层
isdkz 发表于 2023-6-22 15:04
因为变量的本质是一个地址,而列表中的元素也是地址,所以列表中的元素可以被赋值


不,只有可变量是地址,不可变量是值

他的这个是因为 A[i] 也是列表,相当于二维列表

评分

参与人数 1鱼币 -4 收起 理由
sfqxx -4 你也扣我也扣一起来扣哈哈哈哈

查看全部评分

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

使用道具 举报

发表于 2023-6-22 15:13:31 | 显示全部楼层
是的,`A[i] = [0] * 3` 这句话是将列表 `A` 的第 `i` 个元素赋值为长度为 `3` 并且每个元素都为 `0` 的列表。这种写法适用于Python中所有可变的数据类型,包括列表(lists)和字典(dictionaries)等。

因为Python中的列表是一个可变的数据结构,它们可以包含任何Python对象,包括其他列表或字典。在上述例子中,`A` 列表包含了三个元素,每个元素都是一个长度为 `3` 的新列表。

因此, A[i] 是 `A` 列表的第 `i` 个元素,也是一个列表。通过把 `A[i]` 设置为 `[0] * 3`,`A[i]` 现在指向了一个包含 `3` 个零的列表对象, 所以,当使用 `A` 进行打印时可以看到所有的元素都已经被初始化成 `0` 。

评分

参与人数 1鱼币 -5 收起 理由
歌者文明清理员 -5

查看全部评分

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

使用道具 举报

发表于 2023-6-22 15:13:33 | 显示全部楼层
歌者文明清理员 发表于 2023-6-22 15:11
不,只有可变量是地址,不可变量是值

他的这个是因为 A] 也是列表,相当于二维列表


你还是搞清变量、常量和字面量的概念吧

点评

我很赞同!: 5.0
我很赞同!: 5
  发表于 2023-6-22 15:17
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 17:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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