python中用list读进来的数据如何进行删除
1、初学Python,遇到过这样的问题,在遍历list的时候,删除符合条件的数据,可是总是报异常。
2、原因是在删除list中的元素后,list的实际长度变小了,但是循环次数没有减少,依然按照原来list的长度进行遍历,所以会造成索引溢出。
3、虽然最后,list中的元素确实被删除掉了,但是,在循环中的打印结果不对,少打印了。
4、当符合条件,删除元素之后,后面的元素全部往前移,于是向前移动,那么元素的索引,就变成了之前的索引(现在下标索引变为1了),后面的元艾绱书虻素以此类推。可是,下一次for循环的时候,是从下标索引开始的,于是,取出了元素,就漏掉了。
5、既然用for循环不行,那就换个思路,用埂黉餐嚣循环。每次循环的时候,都会去检查list的长度,这样,就避免了索引溢出,然后,在掼屐磴磨符合条件,删除元素之后,手动把当前下标索引,以使下一次循环的时候,通过后的下标索引取出来的元素,而不是略过。
6、执行结果完全正确。那么,为何正序循环时删除就有问题,而倒序循环时删除。删除元素之后,下一次循环的下标索引,但此时,里面存放,于是就把给漏了。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:50
阅读量:58
阅读量:34
阅读量:78
阅读量:88