码迷,mamicode.com
首页 > 编程语言 > 详细

Python遍历删除元素

时间:2015-11-12 23:23:45      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:

需求:

有一个列表:ls = [1,2,3,4,5,6],要求删除其中的偶数

如果是下面这种方法,在遍历的过程中删除,会有问题

for i in range(len(ls)):
    if ls[i]%2 == 0:
        del ls[i]

 异常:IndexError: list index out of range

因为删除一个元素后,列表的长度改变了,所以会报下标越界。

可以采取一下三种方法:

1.

ls = [x for x in ls if x%2!=0]      #列表解析

 2.

ls = filter(lambda x:x%2!=0,ls)  #filter

 3.

for i in range(len(ls)-1,-1,-1):     #倒序
    if ls[i]%2 == 0:
        del ls[i]

 

Python遍历删除元素

标签:

原文地址:http://www.cnblogs.com/ljwbook/p/4960478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!