Python 很难理解为什么x的值在最后一行没有变化?

Python 很难理解为什么x的值在最后一行没有变化?,python,Python,[][1] 我一直在玩弄它,然后我被困在列表的易变性的理解 在第行中,b[2]=22,x列表中的值发生变化,但在执行b=[2,1,3]后,该值不发生变化,且其正确性在它之后 我第二次试图用b[0]=45改变x,但这并没有改变x的列表值,为什么 [我使用的是python 3.7,我是python语言的初学者。我一直在玩它,然后我一直在理解列表的易变性。在第行中,b[2]=22,x列表中的值发生了变化,但在执行b=[2,1,3]后,它没有变化,并且它是正确的,但在它之后,我试图用b[0]来改变x=4

[][1]

我一直在玩弄它,然后我被困在列表的易变性的理解

在第行中,
b[2]=22
x
列表中的值发生变化,但在执行
b=[2,1,3]
后,该值不发生变化,且其正确性在它之后

我第二次试图用
b[0]=45改变x,但这并没有改变x的列表值,为什么

[我使用的是python 3.7,我是python语言的初学者。我一直在玩它,然后我一直在理解列表的易变性。在第行中,b[2]=22,x列表中的值发生了变化,但在执行b=[2,1,3]后,它没有变化,并且它是正确的,但在它之后,我试图用b[0]来改变x=45,第二次不改变x的列表值,为什么

a=[23]

b=[23,2,3]

x=[a,b]

b[2]=22

x [23],[23,2,22]]

b=[2,1,3] x [23],[23,2,22]]

b[0]=45

x
[[23],[23,2,22]

注意:我指的问题中曾经有一幅代码图

让我们看一看这个示例,它类似于您在代码中所做的操作:

a = [20]
b = [21,22,23]
x = [a,b]
您已经创建了两个列表和第三个列表,其中包含这两个列表。这里需要理解的是,b和x[1]都引用相同的列表

b[0] = 0
因此,在
x==[[20],[0,22,23]]
中重新使用LTS。这没什么大不了的,因为通过设置b[0],您还更改了列表x[1]中的值,因为它们引用了相同的列表。 现在当你这么做的时候

b = [1, 2, 3]

您将b设置为指向一个新的列表,您没有更改原始列表b指向的内容,只是重命名了要调用b的列表。这对x[1]中的内容没有影响,因为它仍然指向列表[0,22,23]

欢迎使用stackoverflow!请不要发布代码图片。Isntead将代码粘贴到问题中,并使用代码格式(代码缩进四个空格)那么…你的问题是什么?你能提供一个逻辑上下文吗?请阅读,没有逻辑上下文我们帮不了你所以,第二个不会影响更改,或者在第二个后面会有一个两个列表,可以用其他方式指出。语句
b=[1,2,3]
不影响列表中的第二个元素
x
。在该语句之后有三个列表。一个是列表a,与x[0]相同,您有列表
b=[1,2,3]
x[1]=[0,22,23]
b[0]=45 x[[23]、[23,2,22]]那么这一行呢,x列表没有改变。在这一行中,您已经覆盖了b以指向列表
[2,1,3]
,而不是前面的
[23,2,22]
。您可以执行b=x[1]并跟随b[0]=45,然后看到x改变了是的,现在它已经改变了,非常感谢。