在开发场景中,python 遍历list并删除其中部分元素是很常见的场景。我们简化一下:
现在有一个list [1,2,4,-1,-4,1,9,-7,0], 如何删除list中为负数的元素。
聪明如我,不难想到,遍历判断删除呗!soeasy!
l = [1,2,4,-1,-4,1,9,-7,0] |
我们运行一下,看一下输出:
[1, 2, 4, -4, 1, 9, 0] |
Wow~
remove 函数用于移除列表中某个值的第一个匹配项
好办,我使用index删除。
l = [1,2,4,-1,-4,1,9,-7,0] |
再来一波:
[1, 2, 4, -4, 1, 9, 0] |
额额。貌似不对,我们不妨打印一下:
l = [1,2,4,-1,-4,1,9,-7,0] |
python3 test_list.py |
能看出来删除后其实 index 变化,导致部分元素漏删了。
那么到底如何正确操作呢?
filter
l = [1,2,4,-1,-4,1,9,-7,0] |
需要注意python2和Python3的filter是有区别哈!
[1, 2, 4, 1, 9, 0] |
语法糖
l = [1,2,4,-1,-4,1,9,-7,0] |
注意这里条件,是>=0,就是把非整数保留。
倒序遍历
正向遍历删除元素index变化,那我倒序遍历没毛病吧
l = [1,2,4,-1,-4,1,9,-7,0] |
当然了,其实还有其他方法,比如创建个新的 list,判断后插入,这也是很简单的。
关于list遍历删除就介绍这么多了,写完代码务必老老实实各种情况测试好,不要想当然,就匆匆发布哟!