为什么更改新列表时原始列表会更改?

时间:2018-12-05 12:04:45

标签: python python-3.x

我当前正在编写程序,但遇到代码错误。我将其归结为:

这是问题的根源:

original_list = ["a","b","c","d","e","f","g","h","i","j"]
value = "a"
new_list = original_list
print(original_list)
new_list.pop(new_list.index(value))
print(original_list)
print(new_list)

我希望它能输出:

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

但是相反,它给出了此信息,其中值“ a”已从原始列表中删除:

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

我似乎无法弄清楚为什么,有人知道吗?

1 个答案:

答案 0 :(得分:0)

当您写new_list = original_list时,您只是为相同的旧列表起了另一个名字。

如果要真正创建一个新列表,则需要克隆旧列表。一种方法是使用new_list = list(original_list)。最好的方法取决于列表的内容。