深浅复制
深浅复制只相对于列表内嵌套列表.
浅复制:如果内层列表改变,外层不会受到影响,内层会受到影响.
>>> li = [1, 2, 3, 'a', 'b']
>>> l2 = [10, li]
>>> l2
[10, [1, 2, 3, 'a', 'b']]
>>> l3 = l2.copy()
>>> l3
[10, [1, 2, 3, 'a', 'b']]
>>> id(l2)
3070455660
>>> id(l3)
3070454924
>>> id(li)
3070455116
>>> id(l2[1])
3070455116
>>> id(l3[1])
3070455116
>>> li.append('*')
>>> l2
[10, [1, 2, 3, 'a', 'b', '*']]
>>> l3
[10, [1, 2, 3, 'a', 'b', '*']]
深复制:如果内层列表改变,它不会受到影响
>>> li = [1, 2, 3, 'a', 'b']
>>> l2 = [10, li]
>>> import copy
>>> ls = copy.deepcopy(l2)
>>> ls
[10, [1, 2, 3, 'a', 'b']]
>>> l2
[10, [1, 2, 3, 'a', 'b']]
>>> id(ls[1])
3070398796
>>> id(l2[1])
3070456620
>>> li.append('change')
>>> ls
[10, [1, 2, 3, 'a', 'b']]
>>> li
[1, 2, 3, 'a', 'b', 'change']