Meh*_*tin 2 python arrays list variable-assignment
我有这段代码:
lst = [[1,1], [2,1],[3,1]]
n = len(lst)
head = lst[n - 1]
head[0] += 1
lst.append(head)
del lst[0]
print(lst)
Run Code Online (Sandbox Code Playgroud)
而且我希望可以打印此代码:[[2,1], [3,1], [4,1]]
但它正在打印:[[2, 1], [4, 1], [4, 1]].
我不明白为什么。请帮我。
当您编写时head = lst[n - 1]
,通过引用将head设置为lst的最后一个元素。这意味着[3,1]
两个变量共享具有值的对。如果您不想更改原始列表中的配对,请确保head复制数据。
head = lst[n - 1].copy()
Run Code Online (Sandbox Code Playgroud)