深浅拷贝

from copy import copy, deepcopy
l1 = [1,[2,3,4],{20,40,89},4,5]

赋值

l2 = l1

l2[0]=999

print('l1:')

print(l1)

print('l2:')

print(l2)

l2[1][0]=898

print('l1:')

print(l1)

print('l2:')

print(l2)

浅拷贝

l3 = copy(l1)

l3[0] = 786

print('l1:')

print(l1)

print('l3:')

print(l3)

结果是

l1:[1, [2, 3, 4], {40, 89, 20}, 4, 5]

l3:[786, [2, 3, 4], {40, 89, 20}, 4, 5]

(符合预期)

l3[1][0] = 9804

print('l1:')

print(l1)

print('l3:')

print(l3)

结果是

l1:[1, [9804, 3, 4], {40, 89, 20}, 4, 5]

l3:[1, [9804, 3, 4], {40, 89, 20}, 4, 5]

(不符合预期)

l3[1][0] = 9804

print('l1:')

print(l1)

print('l3:')

print(l3)

结果是

l1:[1, [9804, 3, 4], {40, 89, 20}, 4, 5]

l3:[1, [9804, 3, 4], {40, 89, 20}, 4, 5]

深拷贝

l3 = deepcopy(l1)
l3[1][0] = 9804
print('l1:')
print(l1)
print('l3:')
print(l3)

结果是

l1:[1, [2, 3, 4], {40, 89, 20}, 4, 5]

l3:[1, [9804, 3, 4], {40, 89, 20}, 4, 5]

(符合预期)

posted @ 2019-11-25 15:53  Bitten  阅读(96)  评论(0编辑  收藏  举报