0
我有一段代碼,它與我認爲應該做的事情不同。這是一個模塊,我建在一塊較大的代碼來測試這個問題:從plant1從一個列表中刪除班級,而不從其他列表中刪除它
class plant:
def __init__ (self, param):
self.param = param
plants = []
for i in range(10):
plants.append(plant(10))
plant1 = plants[0]
plants1 = plants
print(len(plants))
for i in plants:
print("Item removed")
plants.remove(i)
print(plant1)
print(len(plants))
print(len(plants1))
這將產生輸出
10
Item removed
Item removed
Item removed
Item removed
Item removed
<__main__.plant object at 0x02780F30>
<__main__.plant object at 0x02780F30>
5
5
爲什麼它刪除plants1的項目很好,但不?我該如何阻止它呢?你的代碼的
你需要複製'plants1 = plants [:]' – 2014-09-20 09:31:10
的列表或使用'.copy()',它也適用於字典。 – simonzack 2014-09-20 09:33:05
@PadraicCunningham絕對相似的答案,但它是一個關於重複的問題,它不一定是重複的問題! – deau 2014-09-20 09:43:13