0


如何删除list中的数据,并且处理python的list列表漏删除数据问题

python 的列表:list

列表的删除:del

定义一个列表:

执行后的结果:第一个单词被删除了

那如果想要执行删除这个列表里含有‘go’这个字符串的单词,如何实现呢?

需要结合for循环来实现,代码如下:

执行结果:IndexError: list index out of range

报错原因:在我们删除了words里第一个符合条件的单词:good之后,列表的长度就变了,再按照len(words) 去遍历list,就会越界。

尝试解决的方案一:改变l的长度

执行结果:IndexError: list index out of range

报错原因:在第一次执行for语句的时候,已经生成序列了,在执行循环开始后,不会因为l值的改变,调整序列,所以这种解决方案失败!

尝试解决的方案二:不用for循环,用while循环,随着执行调整条件控制循环次数

执行结果:没有删除完整,goods没有被删除

原因:删除单词后,list长度变短了,i还执行了+1操作,会跳过一些单词的判断。比如删除good之前,goods占位在words[2],删除good之后,goods占位在words[1],由于此时i =2了,所以goods就被漏掉了。

#尝试解决方案三:调整i的值,在删除执行之后-1,退回到之前的位置

执行结果:['hello', 'apple', 'world', 'digit', 'alpha']

#尝试解决方案四:使用continue,跳过本次循环

执行结果:['hello', 'apple', 'world', 'digit', 'alpha']

总结:在删除list中的值时,需要使用while循环的方式,并且要注意对i的处理,再删除判断后,建议使用continue,跳过本次循环,避免漏删除现象。


本文转载自: https://blog.csdn.net/xiaodaimu00/article/details/123113305
版权归原作者 菜鸟程序员从0开始 所有, 如有侵权,请联系我们删除。

“如何删除list中的数据,并且处理python的list列表漏删除数据问题”的评论:

还没有评论