【for陷阱】遍历的同时删除元素

今晚,哦不,是昨晚了,想删除空行时,给for语句和列表坑得好惨!!!

一般来说,删除字符串的空行有以下几种常见的方法~(然而我竟然想不出来)

假设我们要把下面的字符串之间的空行给去掉

 1 # coding: utf-8
 2
 3 txt = """
 4 This is a nice day!
 5 Nice to meet you!
 6
 7 How are you?
 8
 9 """
10 # 按换行符分割为列表
11 list = txt.split("\n")
12 print list

方法1:  用 for ... in range()

for eachline in range(list):

    # 从上面的输出可知,只要把列表里面的空白元素 "" 给删掉就行了
    list.remove("")
时间: 2024-10-23 07:20:23

【for陷阱】遍历的同时删除元素的相关文章

Java 遍历Map时 删除元素

1 package net.nie.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Map; 6 7 public class HashMapTest { 8 private static Map<Integer, String> map=new HashMap<Integer,String>(); 9 10 /** 1.HashMap 类映射不保证顺序:某些映射

Python遍历列表时删除元素

无论是使用for还是while,当在从前往后遍历的同时删除列表中的元素时,都会发生些问题. 要从lst = [1,4,0,1,5,0,3,5]中删除所有0元素,有两个比较好的方法: 1 使用filter: lst = filter(lambda x : x != 0, lst) 2 使用列表解析: lst = [x for x in lst if x != 0] 这两种方式既简洁,可读性又好 ref: https://segmentfault.com/a/1190000007214571 原文地

Java遍历List并删除某些元素

Java遍历List并删除某些元素 ? 在阿里的Java编程规约中有一条:[强制]不要在foreach循环里进行元素的remove/add操作.remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁. ? 这里不禁要问为什么? ? 首先来试一下,遍历List时删除元素究竟行不行: public class IteratorTest { public static void singleThreadRemove1(){ List<String> list = n

go语言从零学起(三)--list循环删除元素(转载)

本篇系转载 在使用go的container/list的package时,你可能会无意间踩一个小坑,那就是list的循环删除元素. list删除元素,直观写下来的代码如下: package main import ( "container/list" "fmt" ) func main() { //初始化一个list l := list.New() l.PushBack(1) l.PushBack(2) l.PushBack(3) l.PushBack(4) fmt.

Java 集合(List、Set)遍历、判断、删除元素时的小陷阱

开发中,常有场景:遍历集合,依次判断是否符合条件,如符合条件则删除当前元素. 不知不觉中,有些陷阱,不知你有没有犯. 1. 一.漏网之鱼-for循环递增下标方式遍历集合,并删除元素 如果你用for循环递增下标方式遍历集合,在遍历过程中删除元素,你可能会遗漏了某些元素.说那么说可能也说不清楚,看以下示例: import java.util.ArrayList; import java.util.List; public class ListTest_Unwork { public static v

Java - List遍历、判断、删除元素时的陷阱

开发中,常有“遍历集合,依次判断是否符合条件,如符合条件则删除当前元素”的场景,有一些陷阱常犯. 漏网之鱼 import java.util.ArrayList; import java.util.List; public class ListTest_Unwork { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("1"

java 集合遍历时删除元素

本文探讨集合在遍历时删除其中元素的一些注意事项,代码如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 import java.util.ArrayList; import java.util.Iterator; import java

List的遍历和删除元素

/** * 遍历list的方法 * @param args */ public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("111"); list.add("222"); list.add("333"); list.add("222"); list.add("4

STL容器遍历时删除元素

STL容器遍历时在循环体内删除元素最容易出错了,根本原因都是因为迭代器有效性问题,在此记下通用删除方法,该方法适用于所有容器: 1 std::vector<int> myvec; 2 3 std::vector<int>::iterator it = myvec.begin(); 4 while( it != myvec.end()) 5 { 6 it = myvec.erase(it); 7 } 容器list有个比较另类的删除方法,如下代码所示: std::list<int