python初学者:从列表中删除特定条件的元素

#Python 初学者

在列表中删除特定条件的数

最初的想法:
python初学者:从列表中删除特定条件的元素
结果:
python初学者:从列表中删除特定条件的元素
报错说out of range
进入调试后发现,第二次循环后列表变成[9,19,7],于是再进入循环后,列表长度变为3,range(0,4)超出范围。改:
python初学者:从列表中删除特定条件的元素
运行结果:
python初学者:从列表中删除特定条件的元素
emmmm…… 这次没报错,但却不是我想要的结果,调试之后发现跳过了判断19。
remove删除元素的机制是将后面一个元素替换前面一个,del也是同样的机制。

最后的代码:
python初学者:从列表中删除特定条件的元素
从后往前判断即可避免出现上述情况,代码成功了:python初学者:从列表中删除特定条件的元素

不过说到倒序下意识就用了[::-1]的方式,老师说这种方式意味着重新新建了一个列表,比较占内存,所以代码改为下图(三种方法都可以):
python初学者:从列表中删除特定条件的元素

运行如下:
python初学者:从列表中删除特定条件的元素