list.remove(x)删除多个此列表中的对象

时间:2016-09-20 18:13:32

标签: python arrays list python-2.7 python-3.x

当我想复制我的列表并尝试从一个列表中删除一个项目时,它也会在另一个列表中消失。你能给我一个理由吗?如何从一个列表中删除?

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']

我是编程新手。 谢谢你的帮助!

3 个答案:

答案 0 :(得分:0)

因为same_letter_listletter_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