请参阅下面的代码,每当在列表中应用弹出功能时,我分配给此新列表的另一个列表(旧)将更改为。我认为这是错误的,或者我做错了什么。我需要找到一种在使用pop时保留旧列表的简单方法。
a = [1, 5, 4, 6]
z = []
z = a
z.pop(1)
print(z) #prints [1, 4, 6]
print(a) #prints [1, 4,
答案 0 :(得分:0)
您可以使用列表中的copy()
方法,而不是使用仅将内存位置分配给列表a的变量z的赋值运算符(=)。
z = a.copy()
将列表a复制到列表z。
这是文档:
答案 1 :(得分:0)
a = [1, 5, 4, 6]
z=[]+a # will copy ( unlike to z.append(a) ).
z.pop(1)
print(z) # [1, 4, 6]
print(a) # [1, 5, 4, 6]
答案 2 :(得分:0)
您需要为新数组创建旧数组的副本。你正在做的只是引用旧数组,在这种情况下,更改新列表也会改变原始引用的数组。无论您使用何种语言,此概念都适用。如果使用JavaScript,那么Why does changing an Array in JavaScript affect copies of the array?
就会回答几乎相似的问题