我试图将 a = x 并且 b = x.pop() 进行赋值。但是我得到了意外的结果。你能解释一下吗?
>>> x = [10, 11, 12, 13]
>>> a, b = x, x.pop(2)
>>> print a
[10, 11, 13] # Shouldn't I get a = [10, 11, 12, 13]?
>>> print b
12
我试图将 a = x 并且 b = x.pop() 进行赋值。但是我得到了意外的结果。你能解释一下吗?
>>> x = [10, 11, 12, 13]
>>> a, b = x, x.pop(2)
>>> print a
[10, 11, 13] # Shouldn't I get a = [10, 11, 12, 13]?
>>> print b
12
x = [10, 11, 12, 13]
a,b = x.copy(),x.pop(2)
print(a) # your expected output
你将得到 a = [10,11,13],b = 12。
执行 'b = x.pop()' 后会弹出一个值 x,并且 x 会永久改变,即在执行值 'b' 后的整个程序中都会改变。
x
是可变的。a = x
,x
改变了,因此指向同一对象的a
也改变了。 - Stephen Rauch