执行list.pop()时出乎意料的结果



我正在尝试分配a = x and 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在执行值'b'b'

之后,x的值弹出的值弹出。

当您说 a = x 时, a x 都指向同一列表,因此,修改 a 也将修改 x 。如果您说 a = list( x (然后, a 将是列表 x

的单独副本

最新更新