Python简介 - 帮助我理解简单的执行

时间:2016-06-21 17:31:08

标签: python

>>> def double(x):
        x += x
>>> a=[1,2,3,4]
>>> b=a
>>> double(b)
>>> print(a)
[1, 2, 3, 4, 1, 2, 3, 4]
>>> print(b)
[1, 2, 3, 4, 1, 2, 3, 4]
>>> 

有人可以帮我理解这个过程中列表的加倍吗?我理解b的列表是如何加倍但不是

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这就是你的代码:

def double(x):
    x += x

a=[1,2,3,4]
b=a
double(b)
print(a)
print(b)

输出:

[1,2,3,4,1,2,3,4]
[1,2,3,4,1,2,3,4]

原因很简单,如果您有一个列表x = [1,2,3]和一个列表y = [6,7,8],那么x + y会为您提供[1,2,3,6,7,8]。因此,x += x行将x的元素添加到其自身的末尾,使其加倍。

a加倍时b加倍的原因是因为python列表可变。您可以在此处找到更多信息:https://codehabitude.com/2013/12/24/python-objects-mutable-vs-immutable/