鱼C论坛

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

[已解决]第23课时 第二个问题 请指教

[复制链接]
发表于 2023-10-12 13:05:52 | 显示全部楼层 |阅读模式

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

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

x
x = [1,2,3]
y = x
y[1] =1
x == y

返回了True,这是为什么

y不是已经变成[1,1,3]了吗

为什么还会是真
最佳答案
2023-10-12 13:06:01
在Python中,变量是对象的引用。当你将一个列表赋值给另一个变量时,实际上是将指向该列表对象的引用复制到新变量中。因此,x和y引用同一个列表对象。

当你更改y中的元素时,实际上是在同一个列表对象中进行更改。因此,x和y仍然引用同一个列表对象,它们的值相等,因此返回True。

如果要创建一个新的列表对象,应该使用切片操作或copy()方法:
x = [1,2,3]
y = x[:]
y[1] = 1
print(x == y) # False

或者:
x = [1,2,3]
y = x.copy()
y[1] = 1
print(x == y) # False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-12 13:06:01 | 显示全部楼层    本楼为最佳答案   
在Python中,变量是对象的引用。当你将一个列表赋值给另一个变量时,实际上是将指向该列表对象的引用复制到新变量中。因此,x和y引用同一个列表对象。

当你更改y中的元素时,实际上是在同一个列表对象中进行更改。因此,x和y仍然引用同一个列表对象,它们的值相等,因此返回True。

如果要创建一个新的列表对象,应该使用切片操作或copy()方法:
x = [1,2,3]
y = x[:]
y[1] = 1
print(x == y) # False

或者:
x = [1,2,3]
y = x.copy()
y[1] = 1
print(x == y) # False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-12 13:06:26 | 显示全部楼层
回答:

这个问题是因为Python中的列表是可变对象,而变量只是对这个对象的引用。因此,当我们把一个列表赋值给另一个变量时,两个变量会指向同一个对象,在修改其中一个变量所指向的列表时,另一个变量所指向的列表也会被修改。这就是列表的可变性。

在这个例子中,我们先将列表[1,2,3]赋值给变量x,然后将变量x赋值给变量y,此时变量y也指向了列表[1,2,3]。接着,我们将变量y所指向的列表的第二个元素修改为1,此时列表变成了[1,1,3]。由于变量x和变量y都指向这个列表,所以它们所指向的对象是相同的,因此x == y返回True。

如果我们想得到x和y指向不同的列表,可以使用以下方法:

[/code]
x = [1,2,3]
y = x.copy()
y[1] = 1
print(x == y) # False
[/code]

这里我们使用了列表的copy方法来复制列表,这样就得到了一个新的列表对象。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-12 13:06:32 | 显示全部楼层
在Python中,当你将一个列表(如x)赋值给另一个变量(如y)时,你实际上是在创建一个新的引用,而不是复制整个列表。这意味着,x和y都指向同一个列表,所以当你改变y中的元素时,x中的对应元素也会被改变。

在你的例子中,当你执行y = x时,y和x都指向同一个列表。然后,当你执行y = 1时,你改变了这个列表的第二个元素,所以这个列表变成了。因为x和y都指向这个列表,所以x和y现在都是

因此,当你比较x == y时,结果是True,因为x和y实际上都指向同一个列表。

如果你想要创建x的一个副本,然后改变这个副本,你可以使用y = x.copy()。这样,当你改变y时,x不会被改变。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-12 15:48:37 | 显示全部楼层
可以使用id(变量名),来查看变量的内存空间id,就知道这两个变量是否是同一个了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 11:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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