一、列表使用=赋值
list2=list1,并无任何赋值的作用,list2仅复制了list1的内存地址,list1有任何修改都会体现在list2中
list_1 = ["a","b",["qqq","www"],"c","d"]
list_2 = list_1
list_1[1] = "修改后"
print("原列表:",list_1)
print("赋值的列表2:",list_2)
原列表: ['a', '修改后', ['qqq', 'www'], 'c', 'd']
赋值的列表2: ['a', '修改后', ['qqq', 'www'], 'c', 'd']
二、浅copy
浅copy只复制第一层(列表嵌套列表的类型,如:[“a”,“b”,[“qqq”,“www”],“c”,“d”]),第二层只复制内存地址,代表方法:
1.list中的copy方法
2.copy中的copy方法
list_1 = ["a","b",["qqq","www"],"c","d"]
list_2=list_1.copy()
list_1[1] = "修改后1"
list_1[2][1] = "修改后2"
print("原列表:",list_1)
print("赋值的列表2:",list_2)
list_1 = ["a","b",["qqq","www"],"c","d"]
list_2=copy.copy(list_1)
list_1[1] = "修改后1"
list_1[2][1] = "修改后2"
print("原列表:",list_1)
print("列表2:",list_2)
原列表: ['a', '修改后1', ['qqq', '修改后2'], 'c', 'd']
列表2: ['a', 'b', ['qqq', '修改后2'], 'c', 'd']
三、深copy
深copy为完全复制一份数据,并重新开拓一份内存地址,代表方法:
1.copy中的deepcopy方法
list_1 = ["a","b",["qqq","www"],"c","d"]
list_2=copy.deepcopy(list_1)
list_1[1] = "修改后1"
list_1[2][1] = "修改后2"
print("原列表:",list_1)
print("列表2:",list_2)
原列表: ['a', '修改后1', ['qqq', '修改后2'], 'c', 'd']
列表2: ['a', 'b', ['qqq', 'www'], 'c', 'd']