【Python】如何複製數據結構?

錯誤的複製?

我們來看一組代碼

>>>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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章