Python遍历删除元素

需求:

有一个列表: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]
时间: 2024-10-29 09:58:36

Python遍历删除元素的相关文章

STL中用erase()方法遍历删除元素?.xml

pre{ line-height:1; color:#f0caa6; background-color:#2d161d; font-size:16px;}.sysFunc{color:#e54ae9;font-style:italic;font-weight:bold;} .selfFuc{color:#f1f9be;} .bool{color:#69305e;} .condition{color:#628698;font-weight:bold;} .key{color:#e336b6;} .

python列表删除元素整理

先看一个例子: test1 = ['a','b','c','','']for i in test1: if i == '': test1.remove(i) #删除空元素 print(test1) >>>['a', 'b', 'c', ''] 这时发现并没有达到我们想要的结果,原因分析如下: 要了解一下python列表的数据结构,列表属于连续线性表,它的连续在于有一块连续的内存储存着列表中元素的地址,如图(忽略地址与值所占的字节,只为方便举例子): 当然也可以通过一个代码来看证明一下:

Python list删除元素

pop()方法 php(n) 从list删除元素Paul同学刚来几天又要转走了,那么我们怎么把Paul 从现有的list中删除呢?如果Paul同学排在最后一个,我们可以用list的pop()方法删除:>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> L.pop()'Paul'>>> print L['Adam', 'Lisa', 'Bart']pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,所以

Python 字典删除元素clear、pop、popitem

原文网站:http://www.iplaypython.com/jinjie/jj116.html 同其它python内建数据类型一样,字典dict也是有一些实用的操作方法.这里我们要说的是字典删除方法:clear().pop()和popitem(),这三种方法的作用不同,操作方法及返回值都不相同.接下来就来查看下这些字典特定方法的具体用法是什么. 字典clear()方法 clear()方法是用来清除字典中的所有数据,因为是原地操作,所以返回None(也可以理解为没有返回值) >>> x

python遍历字典元素

a={'a':{'b':{'c':{'d':'e'}},'f':'g'},'h':'i'} def show(myMap): for str in myMap.keys(): secondDict=myMap[str] print str if type(myMap[str]).__name__=='dict': for key in secondDict.keys(): if type(secondDict[key]).__name__=='dict': print key show(seco

python 遍历删除日志

#! /usr/bin/python2.6#-*- encoding:UTF-8 -*- import osimport os.pathimport time root_dir = os.getcwd()seperator = os.sep max_used_space = 60*1024*1024*1024 #当使用的硬盘空间大于该值的时候启动删除60Gmin_left_space = 20*1024*1024*1024 #删除保存的硬盘空间20Gmax_remain_time = 7*24*

如何正确遍历删除List中的元素(普通for循环、增强for循环、迭代器iterator、removeIf+方法引用)

遍历删除List中符合条件的元素主要有以下几种方法: 普通for循环 增强for循环 foreach 迭代器iterator removeIf 和 方法引用 (一行代码搞定) 其中使用普通for循环容易造成遗漏元素的问题,增强for循环foreach会报java.util.ConcurrentModificationException并发修改异常. 所以推荐使用迭代器iterator,或者JDK1.8以上使用lambda表达式进行List的遍历删除元素操作. 以下是上述几种方法的具体分析: 1.

mui删除元素

百度了好多资料,发现不管是jquery还是原生js的删除元素remove()或empty()方法,在mui上不管用.直到找到removeChild方法. 如下 var list=document.getElementById("myList"); list.removeChild(list.childNodes[0]); 修改为遍历删除元素下所有节点,如下 var list=document.getElementById("myList"); for(var i =

python list遍历时删除元素

python list遍历时候删除还真需要注意下,今天帮同学处理数据,竟然傻逼了. 需求: 除了第一列,给每列加一个序号如:"1:0","2:0","3:20100307",然后删除冒号后为0的数据. 推荐做法: arrays = [ ['5001', '0', '0', '20100307', '20150109', '2', '3', '75', '0', '0', '114', '13', '2', '0', '0'], ['10001',