概述
list3 = [
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8]
# [2, 3, 4, 5, 6, 7, 8]
# [2, 4, 5, 6, 7, 8]
for i
in
range(
0
,
len(
list3)):
if
list3[i] <
5:
list3.pop(i)
print(
list3)
首先判断1<5,将1删除,之后列表变成[2,
3,4,5,6,7,8],即且数据整体向前迁移一位
之后判断的不是2,而是3,3< 5将3删除,之后列表变成[2,4,
5,6,7,8]
之后判断的不是4,而是5,5=5,不删除,输出5
又如:
list3 = [1, 2, 3, 4, 5, 6, 7, 8] for i in list3: if i < 4: list3.remove(i) print(list3)
结果:
[2, 4, 5, 6, 7, 8]
同第一个例子!!!
解决:使用
逆序遍历
list3 = [
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8]
# [2, 3, 4, 5, 6, 7, 8]
# [2, 4, 5, 6, 7, 8]
for i
in
range(
len(
list3)-
1
, -
1
, -
1):
if
list3[i] <
5:
list3.pop(i)
print(
list3)
结果:
[
5
,
6
,
7
,
8]
显然删除了。因为反向遍历不存在向前推移的情况!!
最后
以上就是寒冷紫菜为你收集整理的python中列表删除并遍历遇到的问题——越界!的全部内容,希望文章能够帮你解决python中列表删除并遍历遇到的问题——越界!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复