python在列表中删除元素的方法,Python 删除列表元素
1.问题的描述。这是在工作中遇到的一段代码,其原理大概类似于下面这样(判断一个元素是否符合要求,不符合就删除该元素,最后得到一个符合要求的列表):
A=[1,2,3,4,5,6,7,8]for I in a:if i5:pass else:a . remove(I)print(a)运行结果:
二。问题分析因为删除元素后,整个列表的元素会向前移动,而我一开始就已经确定了,并且在不断增加,所以得不到想要的结果。
3.解决方案1。在新列表操作中遍历,在原列表操作中删除。
A=[1,2,3,4,5,6,7,8]print(id(a))print(id(a[:])for I in a[:]:if i5:pass else:a . remove(I)print(a)print(-)
2 .过滤器
内置函数过滤器()官方文档参考:https://docs.python.org/3/library/functions.html#filter
A=[1,2,3,4,5,6,7,8]b=filter(x:X5,a) print (list (b))运行结果:
3.列表解析
A=[1,2,3,4,5,6,7,8] b=[I for I in a if I 5] print (b)运行结果:
4.逆序删除
因为列表总是“向前移动”,所以可以逆序遍历。即使后面的元素被修改,没有被遍历的元素及其坐标保持不变。
A=[1,2,3,4,5,6,7,8]print(id(a))for I in range(len(a)-1,-1,-1):if a[I]5:pass else:a . remove(a[I])print
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。