赋值 范例
修改list1 和list2中的任意内容 list1和list2会同时发生变化
如输入:
list1 = ["B307",["hcl","ln"],"hn"]
list2 = list1
print("list1:",list1)
print("list2:",list2)
list1[0] = "A307"
print("list1:",list1)
print("list2:",list2)
输出为:
list1: ['B307', ['hcl', 'ln'], 'hn']
list2: ['B307', ['hcl', 'ln'], 'hn']
list1: ['A307', ['hcl', 'ln'], 'hn']
list2: ['A307', ['hcl', 'ln'], 'hn']
浅拷贝范例
1、修改第一层数据
修改第一层数据,不影响浅拷贝对象
输入为:
import copy
list1 = ["B307",["hcl","ln"],"hn"]
list2 = list1.copy() #浅拷贝方式1
#list2 = copy.copy(list1)#浅拷贝方式2
#list2 = list1[:]#浅拷贝方式3
print("list1:",list1)
print("list2:",list2)
#修改list1中第一层的值
list1[0] = "A307"
print("list1:",list1)
print("list2:",list2)
输出为:
list1: ['B307', ['hcl', 'ln'], 'hn']
list2: ['B307', ['hcl', 'ln'], 'hn']
list1: ['A307', ['hcl', 'ln'], 'hn']
list2: ['B307', ['hcl', 'ln'], 'hn']
2、修改第二层数据
修改第二层数据,影响浅拷贝对象
输入为:
import copy
list1 = ["B307",["hcl","ln"],"hn"]
list2 = list1.copy() #浅拷贝方式1
#list2 = copy.copy(list1)#浅拷贝方式2
#list2 = list1[:]#浅拷贝方式3
print("list1:",list1)
print("list2:",list2)
#修改list1中第二层的值
list1[1][0] = "ln"
print("list1:",list1)
print("list2:",list2)
输出为:
list1: ['B307', ['hcl', 'ln'], 'hn']
list2: ['B307', ['hcl', 'ln'], 'hn']
list1: ['B307', ['ln', 'ln'], 'hn']
list2: ['B307', ['ln', 'ln'], 'hn']
深拷贝范例
深拷贝 修改所有层数据都不影响 拷贝对象
输入为:
import copy
list1 = ["B307",["hcl","ln"],"hn"]
list2 = copy.deepcopy(list1) #深拷贝
print("list1:",list1)
print("list2:",list2)
#修改list1中第二层的值
list1[1][0] = "ln"
print("list1:",list1)
print("list2:",list2)
输出为:
list1: ['B307', ['hcl', 'ln'], 'hn']
list2: ['B307', ['hcl', 'ln'], 'hn']
list1: ['B307', ['ln', 'ln'], 'hn']
list2: ['B307', ['hcl', 'ln'], 'hn']