我刚遇到这个错误:
def fn_that_uses_a_list(list):
if (list[-1] < 0): list += [0]
for item in list:
print(item)
l = [-4, -2]
fn_that_uses_a_list(l)
# Now suddenly l has three items.
但是,如果我将list += [0]
更改为list = list + [0]
,那么事情就会奏效。我发现这令人困惑,但可能是因为我是Python的新手。
为什么这种情况有区别?我正在寻找一个更具存在性的答案,而不是“list
是一个参考,所以+=
修改了原始的”
我做的是“非pythonic”导致我遇到错误吗?
答案 0 :(得分:0)
如果我同时使用var paddle = Paddle()
self.addChild(paddle)
和list += [0]
,我不确定您的身份,我会得到相同的结果。
尽管如此,list = list + [0]
会改变列表,而+=
会创建一个新列表。尝试:
+