网站建站报告2000字,企业网站是企业在互联网上进行网络营销,凡客官网 电脑版,网店装修模板一、需求#xff1a;
对一个 list 数据类型写一个循环删除的程序
二、问题
来#xff0c;我们来看看代码跟效果#xff1a;
# 初始化一个 list 列表#xff0c;为了下边的方便比较#xff0c;我就使用跟 list 索引来做 list 的元素
datas [0,1,2,3,4]# 打印元素组
对一个 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 中的元素datas.remove(data)# 循环次数1index 1# 索引 1i 1# 最后的 datas 列表
print(\n循环结束最后的 datas 的元素为)
print(datas)输出结果如下 如上图可以看出在 for 循环中 datas 没删除一个元素它的索引都会变化但 for 循环中遍历的索引总会加 1 所以就会出现以上这种跳过性删除的情况。
对于这种情况想到了一个方法我们先来看看下面的这一段程序
# 初始化一个 list 列表
datas [1,3,4,10,5,3,7,6,9,8]#使用 for 遍历
for data in datas:# 现在我们需要删除偶数的元素if data % 2 0:# 删除 datas 中的元素datas.remove(data)# 最后的 datas 列表
print(\n循环结束最后的 datas 的元素为)
print(datas)我们来看看这段代码的运行结果 我们可以看出4 跟 10 是相邻着的4 的下标是 210 的下标是 3所以当 4 删除之后datas 中下标为 2 的元素就变成了 10但是此时的 for 循环中datas 的下标是 3 了所以取不了 10 这个元素这才导致了 10 没有被删除。
那我们要如何来删除呢做法是这样的
三、方法
方法一
# 初始化一个 list 列表
datas [1,3,4,10,5,3,7,6,9,8]# 打印原数组元素方便对比
print(原 datas 列表的元素为)
print(datas)# 定义一个空的 list 列表来储存要删除的 datas 的元素
datas_del []#使用 for 遍历
for data in datas:# 现在我们需要删除偶数的元素if data % 2 0:# 不直接删除将需要删除的元素存入 datas_del 中datas_del.append(data)# 打印 datas_del 列表查看要删除的元素
print(\n打印 datas_del 列表查看要删除的元素)
print(datas_del)# 再执行一个 for 循环遍历 datas_del 列表
for data in datas_del:# 删除 datas 中的元素datas.remove(data)# 最后的 datas 列表
print(\n删除后的 datas 的元素为)
print(datas)现在我们来执行以下上面的这段代码是否已经可以成功的删除所要删除的元素我们看看结果 方法二
# 初始化一个 list 列表
datas [1,3,4,10,5,3,7,6,9,8]# 打印原数组元素方便对比
print(原 datas 列表的元素为)
print(datas)# 定义一个空的 list 列表来储存要删除的 datas 的元素
datas_del []#使用 for 遍历
#[:]作用相当于拷贝了一份
for data in datas[:]:# 现在我们需要删除偶数的元素if data % 2 0:# 不直接删除将需要删除的元素存入 datas_del 中datas.remove(data)print(\n删除后的 datas 的元素为)
print(datas)输出结果 从上面的结果可知我们已经成功的将我们所需要的元素删除了。