Python列表的复制机制

知识点1:Python列表实际上是一个地址

知识点2:对一个列表乘以几,就会让列表内部的元素复制几倍

[ 列表元素 ]*5=[ 列表元素,列表元素,列表元素,列表元素,列表元素 ]

案例分析:创建一个5*5的二维列表,每一行都是一个由[ 1,2,3,4,5  ]组成的一维列表

思路A:创建一个一维列表[1,2,3,4,5],并将其复制5倍

bug:修改s[1][1]这个元素,发现把一列都修改了

问题原因:[1,2,3,4,5]是一个列表,它本质上是一个地址,s=[ [1,2,3,4,5] ]*5,相当于把一个地址复制了5份,存储到了一个新的列表中,因此,不论是s[1],s[2]还是s[3],它们指向的都是同一个列表

思路B:

s=[ [1,2,3,4,5] for i in range (5) ]

这个思路是正确的,每次循环时,s都会append一个新的独立的列表[1,2,3,4,5],因此就不会阐述引用冲突的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值