当我想复制我的列表并尝试从一个列表中删除一个项目时,它也会在另一个列表中消失。你能给我一个理由吗?如何从一个列表中删除?
letter_list = ["A","B","C"]
same_letter_list = letter_list
print same_letter_list
print letter_list
same_letter_list.remove("B")
print same_letter_list
print letter_list
我的输出是:
['A', 'B', 'C']
['A', 'B', 'C']
['A', 'C']
['A', 'C']
我是编程新手。 谢谢你的帮助!
答案 0 :(得分:0)
因为same_letter_list
和letter_list
是相同的列表。它引用了相同的记忆。
如果您想将它们分开,请复制
same_letter_list = letter_list.copy()
答案 1 :(得分:0)
列表是一样的。您可以将其切片到另一个变量,以便它们不同。像这样:
letter_list = ["A","B","C"]
same_letter_list = letter_list[:]
print same_letter_list
print letter_list
same_letter_list.remove("B")
print same_letter_list
print letter_list
答案 2 :(得分:0)
基本上letter_list和same_letter_list是相同的地址
>>> letter_list = ["A","B","C"]
... same_letter_list = letter_list
...
>>> id(same_letter_list)
1316298424
>>> id(letter_list)
1316298424
它会给出一个新地址
diff_letter_list = letter_list[:]
id(diff_letter_list)
1307621296