python学习笔记(五)-- 深拷贝、浅拷贝

时间:2021-10-01 22:45:07
深拷贝--两个变量指向不同内存地址
L1 = [1,2,3,4,5]
L2 = L1[:]#深拷贝
浅拷贝--两个变量指向同一内存地址
L3 = L1#浅拷贝
#循环list的时候,不要删除元素,下标会错乱
#可以用两个list,循环一个,删除另一个
li = [1,1,2,3,4,5,6,7,8,9]
li2 = [1,1,2,3,4,5,6,7,8,9]
#li2 = li[:]
for i in li2:
    if i%2!=0:
        li.remove(i)
print(li)

import copy
d = {"name":"xiaomi",'l':[4,5,6]}
d1 = copy.deepcopy(d) #深拷贝
d1['age'] = 14
d1['l'].append(8)
print('d',d)
print('d1',d1)
d1 = copy.copy(d) #如果里面多加一层,就又是浅拷贝