錯誤的複製?
我們來看一組代碼
>>>first = [1, 2, 3, 4, 5]
>>>first
[1, 2, 3, 4, 5]
>>>second = first
>>>second
[1, 2, 3, 4, 5]
看起來沒有問題?
我們接着將second列表做出修改
>>>second.append(6)
>>>second
[1, 2, 3, 4, 5, 6]
>>>first
[1, 2, 3, 4, 5, 6]
我們發現,對second修改導致first也發生了修改。這是因爲:
first和second指向同一個數據,它們共享這個列表的引用
賦值操作不能把一個列表複製到另一個列表
如何複製數據結構?
列表提供了一個copy方法,完成真正的複製。
>>>third = second.copy()
>>>third
[1, 2, 3, 4, 5, 6]
>>>third.append(7)
>>>second
[1, 2, 3, 4, 5, 6]