深浅复制
列表的深浅复制
嵌套列表
即在一个列表中包含其他的列表。
例:mylist = [1,2,3,['a','b','c',['A','B','C']]]
若要替换嵌套列表的元素,则用mylist[3][3][0] = 'Z'
浅复制
浅复制使用copy
命令,但是复制出来的新列表里的嵌套列表元素会随着原来列表元素的改变而改变
>>> mylist1 = [1,2,3,['a','b','c',['A','B','C']]]
>>> mylist2 = mylist1.copy()
>>> mylist2
[1, 2, 3, ['a', 'b', 'c', ['A', 'B', 'C']]]
>>> mylist1[3][3][0] = 'S'
>>> mylist1
[1, 2, 3, ['a', 'b', 'c', ['S', 'B', 'C']]]
>>> mylist2
[1, 2, 3, ['a', 'b', 'c', ['S', 'B', 'C']]]
只会是二级或者二级以上的嵌套列表元素会发生改变,一级列表元素不会改变
深复制
也叫彻底拷贝,元素的所有列表元素都不会发生改变
使用方法:导入copy
包,用deepcopy
进行复制
>>> import copy
>>> mylist1 = [1,2,['a','b',['A','B']]]
>>> mylist2 = copy.deepcopy(mylist1)
>>> mylist1
[1, 2, ['a', 'b', ['A', 'B']]]
>>> mylist2
[1, 2, ['a', 'b', ['A', 'B']]]
>>> mylist1[2][2] = 'SB'
>>> mylist1[2][0] = 'SB'
>>> mylist1
[1, 2, ['SB', 'b', 'SB']]
>>> mylist2
[1, 2, ['a', 'b', ['A', 'B']]]
字符编码
编码:encode
解码:decode
>>> a = '素心'
>>> a1 = a.encode('GBK')
>>> a1
b'\xcb\xd8\xd0\xc4'
>>> a2 = a1.decode('GBK')
>>> a2
'素心'