【Python】List一边迭代一边删除的安全方法

原创 2018年04月15日 15:49:41
最简单的例子
nums = [1,2,3]
i = 0
while i < len(nums):
    del nums[i]
print(nums)

虽然,不推荐在迭代的过程中不能进行增删操作,但在一些要求额外空间复杂度为O(1)的题目(例如:LeetCode 26)中必须要进行这样的操作。

一个要点:

每次循环均需判断是否会越界(len(nums)每一次都要重新求值)

JAVA List 一边遍历一边删除元素,报java.util.ConcurrentModificationException异常

在使用set/map时,一个可爱的小bug:java.util.ConcurrentModificationException   【错误场景1】:set容器,边遍历,边add/remove元素 ...
  • zhanzkw
  • zhanzkw
  • 2015-02-10 14:42:49
  • 2145

一边遍历,一边删除迭代器的问题

map>::iterator it=co.begin(); while(it!=co.end()){ if(it->second==0)co.erase(it);     it++; } ...
  • qq_30339595
  • qq_30339595
  • 2018-01-30 11:37:17
  • 20

Java集合怎么一边删除一边遍历

问题描述: Java新手容易犯一个错误,就是遍历集合的同时删除集合的元素。那么程序会发生什么呢?下面举个小例子。import java.util.HashSet; import java.util....
  • zjwcdd
  • zjwcdd
  • 2016-05-27 11:24:32
  • 3255

stl vector/list如何一边遍历一边删除

有时候我们在遍历stl的容器的时候需要删除一些不符合条件的item,这时候我们就要担心iterator是不是因为原始的数据的改变而发生改变,因此往往比较容易出现一些问题, 下面比较一下list 和 ...
  • wangeen
  • wangeen
  • 2012-11-01 12:51:52
  • 4548

用list自带的迭代器,实现边遍历边添加的功能

package com.list; import java.util.ArrayList; import java.util.List; import java.util.L...
  • FenQing1213
  • FenQing1213
  • 2017-11-18 17:56:23
  • 211

如何边遍历集合边删除元素--使用Iterator中的remove()方法

在遍历集合时,想将符合条件的某些元素删除,开始是用了下面的方法 public static void main(String[] args) throws UnsupportedEncodingE...
  • huangzebiao007
  • huangzebiao007
  • 2013-12-20 10:45:10
  • 4931

ArrayList边遍历自身边删除元素的方法

今天写代码时,需要删除一个列表中的某个元素,于是就用了一个循环,一边遍历一边删除,一个同事在review我的代码时告诉我,不能这样写,会出问题。for(int i = 0; i < list.size...
  • yangqq2013
  • yangqq2013
  • 2015-07-31 16:40:28
  • 1052

C#对List同时遍历删除操作

之前遇到过一个问题。就是对List同时遍历和删除操作出现遍历对象遗漏或者数据越界问题。1,这种方法会导致list遍历遗漏对象。 private void test() { fo...
  • WLDRSWGZMB
  • WLDRSWGZMB
  • 2016-02-21 12:04:52
  • 4415

listIterator,可以边遍历边修改

Iterator和ListIterator区别我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出...
  • Gooooa
  • Gooooa
  • 2017-08-24 14:57:54
  • 704

Python以遍历的方式删除列表元素

参考http://www.cnblogs.com/GODYCA/archive/2013/06/04/3116887.html 以remove的方式删除需要技术!!!通过创建新列表的方式绕路走比较合适...
  • no_giveup
  • no_giveup
  • 2017-03-06 18:18:10
  • 1015
收藏助手
不良信息举报
您举报文章:【Python】List一边迭代一边删除的安全方法
举报原因:
原因补充:

(最多只允许输入30个字)