主要内容 #
-
列表的拷贝:
- 浅拷贝
- 深拷贝
1. 列表的拷贝 #
拷贝即复制,列表的拷贝就是将一个列表里所有的内容复制给另一个列表。
列表的拷贝有两种方式:浅拷贝和深拷贝
2. 列表的浅拷贝 #
浅拷贝只是复制了对象的一个引用
比如,一个人(即一个对象)可以有很多个称号,每个称号都可以理解为是对这个人的一个引用。
所以不管这个人做了什么改变,所有指向这个人的引用都会跟着一起被改变。
因为无论是哪一个引用,它们都指的是同一个人物。
列表浅拷贝的方式是:直接用变量名进行赋值即可
比如以下程序:
a = [1, 2, 3] b = a # 对列表a执行浅拷贝,将拷贝结果赋值给变量b print('b = ', b) print('a = ', a) #由于a和b指向的是同一个列表,所以修改b则意味着修改了a b[1] = 100 print('b = ', b) print('a = ', a)
3. 列表的深拷贝 #
深拷贝是将对象进行复制,然后用不同的引用分别表示这些对象
比如:一对双胞胎,一模一样,若改变了其中一个人,这改变不会发生在另一个人身上。
因为他们是两个不同的个体
列表深拷贝的方式是:用变量里的元素进行赋值
比如以下程序:
a = [1, 2, 3] b = a[:] # 用切片的方法对列表a执行深拷贝,将拷贝结果赋值给变量b print('b = ', b) print('a = ', a) #由于a和b是相同的内容,但不同的个体,所以修改b不会对a造成任何影响 b[1] = 100 print('b = ', b) print('a = ', a)