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

Python简介-帮助我理解简单执行,python,Python,有人能帮我理解为什么a名单在这个过程中翻了一番吗?我明白为什么b的名单翻了一番,而不是a 谢谢大家! 我认为您的代码就是这样的: >>> 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

有人能帮我理解为什么a名单在这个过程中翻了一番吗?我明白为什么b的名单翻了一番,而不是a


谢谢大家!

我认为您的代码就是这样的:

>>> 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]
>>> 
输出:

def double(x):
    x += x

a=[1,2,3,4]
b=a
double(b)
print(a)
print(b)
原因很简单,如果你有一个列表
x=[1,2,3]
和一个列表
y=[6,7,8]
,那么
x+y
会给你
[1,2,3,6,7,8]
。因此,行
x+=x
x
的元素添加到其末尾,使其加倍


b
加倍时,
a
加倍的原因是python列表是可变的。您可以在此处找到更多信息:

请修复缩进。您的代码不可能理解并在一行中运行。看起来倍增发生的原因很简单,因为
x+=x
,即“将列表添加到自身”。顺便说一句,请注意:
b=a
表示b和a是同一个列表。如果你添加到一个,你将添加到另一个!
[1,2,3,4,1,2,3,4]
[1,2,3,4,1,2,3,4]