这是我的意思:
x = [1, 2, 3]
y = x
y = y + [4]
据我了解,变量y
指向变量x
,该变量存储列表对象[1、2、3]。在第二行代码中,x
和y
都存储相同的ID。在代码的最后一行,我们将更改变量y
存储的内容。是否将列表[4]
添加到y中以创建一个包含4整数对象的新列表对象?我很确定x
和y
仍然指向相同的ID,因为列表是可变的,我只需要在[4]上进行确认即可。是否创建了新的列表和int对象?
答案 0 :(得分:0)
表达式y + [4]
创建一个新列表,该列表是将[4]
添加到y
所包含的内容中的结果。将表达式的结果分配给y
会更改y
指向已创建的新列表。
这与以下代码没有什么不同>
y = 1
y = y + 1
此代码后,y
将为2
,并且1
的含义没有改变。
答案 1 :(得分:0)
没关系,我明白了!我错了,在第三行为y
创建了一个新对象!它是列表[1,2,3,4]。变量x仍引用list
[1、2、3]。添加[4]类似于python中的.extend()函数,其中将为4创建一个新的int对象,但没有一个包含该int的新列表对象!