一个关于list的有趣的问题

今天哥们和我讨论了一个关于list的有趣的小问题,问题如下:

a = [1, 2, 3, 4,  5, 6, 7]

定义了一个列表a,然后遍历它, 每遍历一次,就删掉那个数字:

for i in a:
    print i
    a.remove(i)
结果呢打印出来的数字是 1,3, 5, 7, 说明1, 3 , 5, 7被删掉了。

列表里还剩下2,4,6,这是为什么呢。

我们讨论后发现,for根据列表的索引遍历,第一次遍历的时候,读取的数字是索引0,删除列表的第一数,也就是a[0],也就是1,然后就到了第二次遍历,

读取a[1],但是,这时候的a已经不是原来的a了,它变了,由于删掉了1,所以a[1]不是数字2,数字2变成了a[0],a[1]变成了3,所以数字2被跳过了,以此类推,

就有了上述的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值