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