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