列表copy存在深浅copy,在列表中存在二级列表时候,浅copy仅仅复制二级列表的地址,不复制其内部内容,若想复制其中内容则要使用深copy。
浅copy的三种方法:
c1 = copy.copy(names) c2 = names[:] c3 = list(copy) #还没学,以后回会学
深copy:
# Author:yebo import copy names = ["imac",[ "iwatch", "iphone"]] names_copy = copy.copy(names) #浅copy names_deepcopy = copy.deepcopy(names) #深copy names[1][1] = "iphoneX" #更改第二层列表内容 print(names_copy) print(names_deepcopy) print(names)
对于浅copy的应用:
联合账号,即夫妻双方持有同一银行账号,其中一人变动则联合账号也会发生变动。
1 # Author:yebo 2 3 #应用浅copy特性创建联合账号 4 5 person = ["name",["saving",0]] 6 7 person1 = person[:] 8 person2 = person[:] 9 10 person1[0] = "yebo" 11 person2[0] = "shuzzz" #两个人持有一个共同账号 12 13 person1[1][1] = 1000000 #其中一个账号发生变动 14 15 print(person1) 16 print(person2) #体现结果是两个人的存款都变动了