python编程基础之十五

二维列表

l1 = [[1, 2, 3], [4, 5, 6]]

print(l1[0][0])  

列表负值

列表复制为两种:深复制,浅复制

浅复制:只复制容器,容器里的元素不产生副本,只是技术引用增加

深复制:不但复制容器,容器里面的元素也产生副本

对于非容器类型,包括int,float,bool,complex不存在深复制,都是浅复制

l1 = [[1, 2][3, 4][5, 6]]

l2 = l1.copy()

l3 = copy.copy(11)

print(id(l1), id(l1[0]), id(l1[1]), id(l1[2]))

print(id(l2), id(l2[0]), id(l2[1]), id(l2[2]))

print(id(l3), id(l3[0]), id(l3[1]),id(l3[2]))

运行结果:

---------l1------------
43508552 43458440 43508744 43508680
---------l2------------
43508808 43458440 43508744 43508680
---------l3------------
43507848 43458440 43508744 43508680

说明这些都是浅复制

深复制需要用到deepcopy()

l4 = copy.deepcopy(l1)

print(id(l4), id(l4[0]), id(l4[1]), id(l4[2]))

运行结果:

---------l4------------
35696008 43386248 43385608 43385544

 

posted @ 2018-07-24 21:16  嗨哥-higer  阅读(98)  评论(0编辑  收藏  举报