对python list 遍历删除的正确方法详解
在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下:
num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num_list)): if num_list[i] == 2: num_list.pop(i) else: print(num_list[i]) print(num_list)
原因是在删除list中的元素后,list的实际长度变小了,但是循环次数没有减少,依然按照原来list的长度进行遍历,所以会造成索引溢出。
解决方案:倒序循环删除
num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num_list)-1, -1, -1): # for i in range(0, num_list.__len__())[::-1] if num_list[i] == 2: num_list.pop(i) else: print(num_list[i]) print(num_list)
以上这篇对python list 遍历删除的正确方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python简单遍历字典及删除元素的方法
本文实例讲述了Python简单遍历字典及删除元素的方法.分享给大家供大家参考,具体如下: 这种方式是一定有问题的: d = {'a':1, 'b':2, 'c':3} for key in d: d.pop(key) 会报这个错误:RuntimeError: dictionary changed size during iteration 这种方式Python2可行,Python3还是报上面这个错误. d = {'a':1, 'b':2, 'c':3} for key in d.keys():
-
python 删除列表里所有空格项的方法总结
首先,我们来随便写一个带空格的列表: list1 = ['122','2333','3444',' ','422',' ',' ','54',' '] 相信已经有人尝试过,诸如以下的方式去删掉空格,例如: # -*- coding:utf-8 -*- for i in list1: if i == ' ': list1.remove(' ') print list1 但是结果你会发现是这样的,它总是不能完全的删完空格,会在末尾留下一个. 方法一: 这个时候,可以尝试把'=='改为in: # -*
-
python 实现数组list 添加、修改、删除的方法
数组是一种有序的集合,可随时添加.删除其中的元素 book = ['xiao zhu pei qi','xiao ji qiu qiu','tang shi san bai shou']// 定义book数组 1.添加 .insert/.append book.insert(0,'bu yi yang de ka mei la')//.insert(x,'xx') 在指定位置添加,x/第几位 , 'xx'/添加的内容 book.append('e ma ma tong yao') //.appe
-
对python list 遍历删除的正确方法详解
在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num_list)): if num_list[i] == 2: num_list.pop(i) else: print(num_list[i]) print(num_list) 原因是在删除list中的元素后,list的实际长度变小了,但是循环次数没有减少,依然按照原来list的长度进行遍历,所以会造成
-
Python列表元素删除和remove()方法详解
删除列表中元素的方法有三种: 1. del命令 使用del命令能够删除列表中指定位置上的元素,也可以删除整个列表. 2. pop( )方法 使用列表的pop()方法能够删除并返回列表指定位置(默认为最后一个位置)的元素. 3. remove方法 使用列表的remove()方法能够删除列表中首次出现的指定元素,如果列表中不存在该元素则抛出异常.有的时候可能需要删除列表中某一大量重复的数据,我们很容易就会想到列表的remove()方法,例如: x=[1,2,1,2,1,2,1,2] y=[1,1,2
-
mybatis3.4.6 批量更新 foreach 遍历map 的正确姿势详解
好久没编码了!最近开始编码遇到一个问题 !一个批量修改的问题,就是mybatis foreach 的使用. 当时使用的场景 ,前端 传逗号拼接的字符串id, 修改id对应数据的数据顺序 ,顺序 就是id 的顺序. 就是一个条件(单个id值) 修改一个值(传入的id的顺序) , 1. 把条件作为Map 的key 修改值是value,用map入参 2.用List<Object> 或者数组 ,把条件和值封装成对象放进list集合或者array数组 3.代码使用for循环调用mapper方法 穿两个参
-
Python高效处理大文件的方法详解
目录 开始 处理文本 串行处理 多进程处理 并行处理 并行批量处理 将文件分割成批 运行并行批处理 tqdm 并发 结论 为了进行并行处理,我们将任务划分为子单元.它增加了程序处理的作业数量,减少了整体处理时间. 例如,如果你正在处理一个大的CSV文件,你想修改一个单列.我们将把数据以数组的形式输入函数,它将根据可用的进程数量,一次并行处理多个值.这些进程是基于你的处理器内核的数量. 在这篇文章中,我们将学习如何使用multiprocessing.joblib和tqdm Python包减少大文件
-
Python实现PDF转Word的方法详解
由于PDF的文件大多都是只读文件,有时候为了满足可以编辑的需要通常可以将PDF文件直接转换成Word文件进行操作. 看了网络上面的python转换PDF文件为Word的相关文章感觉都比较复杂,并且关于一些图表的使用还要进行特殊的处理. 本篇文章主要讲解关于如何使用python是实现将PDF转换成Word的业务过程,这次没有使用GUI应用的操作. 由于可能存在版本冲突的问题,这里将开发过程中需要使用的python非标准库的版本列举出来. python内核版本:3.6.8 PyMuPDF版本:1.1
-
python爬虫之BeautifulSoup 使用select方法详解
本文介绍了python爬虫之BeautifulSoup 使用select方法详解 ,分享给大家.具体如下: <html><head><title>The Dormouse's story</title></head> <body> <p class="title" name="dromouse"><b>The Dormouse's story</b></
-
对python pandas 画移动平均线的方法详解
数据文件 66001_.txt 内容格式: date,jz0,jz1,jz2,jz3,jz4,jz5 2012-12-28,0.9326,0.8835,1.0289,1.0027,1.1067,1.0023 2012-12-31,0.9435,0.8945,1.0435,1.0031,1.1229,1.0027 2013-01-04,0.9403,0.8898,1.0385,1.0032,1.1183,1.0030 ... ... pd_roll_mean1.py # -*- coding: u
-
对python dataframe逻辑取值的方法详解
我遇到的一个小需求,就是希望通过判断pandas dataframe中一列的值在两个条件范围(比如下面代码中所描述的逻辑,取小于u-3ε和大于u+3ε的值),然后取出dataframe中的所有符合条件的值,这个需求的解决与普通的iloc.loc.ix的方式不同,所以我想分享一下,希望可以帮到遇到这个困难的朋友们,下面是我的实例代码: doc[~((doc.iloc[:,141:142]<(mean_value-3*std_value))&(doc.iloc[:,141:142]>(me
-
对Python获取屏幕截图的4种方法详解
Python获取电脑截图有多种方式,具体如下: PIL中的ImageGrab模块 windows API PyQt pyautogui PIL中的ImageGrab模块 import time import numpy as np from PIL import ImageGrab img = ImageGrab.grab(bbox=(100, 161, 1141, 610)) img = np.array(img.getdata(), np.uint8).reshape(img.size[1]
-
对Python的多进程锁的使用方法详解
很多时候,我们需要在多个进程中同时写一个文件,如果不加锁机制,就会导致写文件错乱 这个时候,我们可以使用multiprocessing.Lock() 我一开始是这样使用的: import multiprocessing lock = multiprocessing.Lock() class MatchProcess(multiprocessing.Process): def __init__(self, threadId, mfile, lock): multiprocessing.Proces
随机推荐
- VMware workstation 9安装配置图文教程
- 春运·票
- ruby安装gem包失败的通用解决方法
- 用jdom创建中文的xml文件的方法
- WIN2008 R2上安全加强方面的四点注意事项!
- vbs实现只复制比目标文件更新的文件
- 浅谈Spring的两种配置容器
- 在iOS应用中使用UIWebView创建简单的网页浏览器界面
- 火狐下input焦点无法重复获取问题的解决方法
- BaiduTemplate模板引擎使用示例(附源码)
- Python新手在作用域方面经常容易碰到的问题
- 简单学习Python time模块
- Android基于TextView实现的跑马灯效果实例
- mysql复制中临时表的运用技巧
- Nodejs初级阶段之express
- Android开机画面的具体修改方法
- jQuery 行背景颜色的交替显示(隔行变色)实现代码
- 正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
- CentOS 7.2安装Nginx 1.10.2的详细教程
- 获取android4.0版本sdcard路径示例