一、需求:
对一个 list 数据类型写一个循环删除的程序
二、问题
来,我们来看看代码跟效果:
# 初始化一个 list 列表,为了下边的方便比较,我就使用跟 list 索引来做 list 的元素
datas = [0,1,2,3,4]
# 打印元素组,方便比较
print(datas)
#使用 for 遍历
for data in datas:
# 删除 list 中的元素
datas.remove(data)
# 打印删除后的数组
print(datas)
我们来看这一段代码,最后的输出结果,按照我以前的经验,应该是一个空的 [] ,但结果不是:

上面的结果却告诉我们,上面的程序只删除了三个元素,并没有全部删除完,为什么呢?
从上面的结果中,我们可以看出,删除的元素是 1,3,5,从这我们可以看出,原来,是 list 在 for 循环中的索引问题,我们来实时跟踪一下 list 列表在 for 中的变化:
# 初始化一个 list 列表,为了下边的方便比较,我就使用跟 list 索引来做 list 的元素
datas = [0,1,2,3,4]
# 打印元素组,方便比较
print(datas)
# 记录是第几次 for 循环
index = 1
# 记录 datas 当前循环的下标值
i = 0
#使用 for 遍历
for data in datas:
# 打印循环次数
print('\n这是第 %d 次循环,datas 当前在 for 循环中的下标值为:%d,删除前 datas 的元素为:' %(index, i))
# 实时打印 datas 列表
print(datas)
# 删除 list

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



