Python笔记:用for循环删除列表中的元素
for运行过程中会有一个指针来记录当前循环的元素是哪一个,一开始这个指针指向第0个元素,然后获取它,接着删除第0个元素,这时候,原来是第1个的元素会变成第0个,当指针向后移动一次,指向了现在第1个元素,这时原来的第1个元素是现在的第0个元素,所以它在循环删除的过程过程中被跳过了。
想要实现循环删除,第一种是列表中有几个元素循环几次,使用pop()从后往前删除:
s = [, , , , , ]
for i in range(, len(s)):
s.pop()
print(s)
第二种方法是用另一个列表记录你要删除的内容,然后循环删除:
s = [11, 22, 33, 44, 55, 66]
s_del = []
for m in s:
s_del.append(m)
for i in s_del:
s.remove(i)
print(s)
dict中的元素在迭代过程中是不允许删除的,会报错,可将要删除的元素的键保存在一个list中,然后通过循环这个list,删除字典中的数据。
PS:由于删除元素会导致元素的索引改变,所以容易出现问题,尽量不要在循环中直接删除元素,可以把要删除的元素添加到另一个集合中然后再批量删除。
Python笔记:用for循环删除列表中的元素的更多相关文章
- python中循环删除列表中元素时的坑!
循环删除列表中元素时千万别用正序遍历,一定要用反序遍历! 废话不多说,先上案例代码: def test(data): for i in data: data.remove(i) return data ...
- for循环删除列表中元素遇到的漏删的问题(python)
问题描述:python中通过for循环来删除列表中的两个相邻的元素,存在漏删的问题 比如说下面的例子,准备删掉2和3,但是结果是2删掉了,3没删掉 是因为把2删掉后3的下标就变成了1,但是原本下标为1 ...
- python——删除列表中的元素
在python中,删除列表元素的方法有三种,分别为remove(),del(),pop()函数 (1)remove() >>> name = ['小明','小华','小红','小李' ...
- python循环删除list中的元素
直接上例子: a = [1,2,3,4,5,6] for i in a: a.remove(i) print(a) 返回:[2, 4, 6] 循环a,想删除a的所有元素,但实际确有数据保留了下来,这是 ...
- 删除列表中重复元素以及求list中元素个数
Python 去除列表中重复的元素 来自比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print l2 还 ...
- java在遍历列表的时候删除列表中某个元素
在遍历list的时候需要删除其中的某些元素,不要用foreach遍历,需要用Iterator. List<String> list = new ArrayList<String> ...
- Python3基础 list 使用for循环 删除列表中的重复项
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- python之enumerate函数:获取列表中每个元素的索引和值
源码举例: def enumerate_fn(): ''' enumerate函数:获取每个元素的索引和值 :return:打印每个元素的索引和值 ''' list = ['] for index, ...
- Python删除列表中元素
Python中列表(list)是很常用的数据结构,删除列表中的元素有几种方法 列表的remove方法 lst = [1, 1, 3, 4] lst.remove(1) # lst->[1, 3, ...
随机推荐
- Golang 操作mysql使用举例---连接本地数据库
连接数据库的方式有两种:TCP和Unix域socket. 本文使用Unix domain sockets连接数据库.关于TCP连接数据库可以参考Go 操作mysql使用举例 下面例子中,演示了使用sh ...
- Flume 多个agent串联
多个agent串联 采集需求:比如业务系统使用log4j生成的日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到hdfs,使用agent串联 根据需求,首先定义以下3大要素 第一台flum ...
- 第一个Django项目
安装 pip install Django==2.0.5 命令行下创建Django项目 django-admin startproject first_project # 创建项目 cd first_ ...
- CEF中弹出窗口的处理
CEF开发如果不想在弹出窗口中打开网页,即想要在当前窗体加载目标Url, 就需要重写OnBeforePopup,它是属于CefLifeSpanHandler类中的. /*--cef(optional_ ...
- MFC系统自动生成的停靠窗格关掉后,如何重新显示?
就是这几个x,关闭之后,再也显示不出来了: 原来,系统会默认记忆上次的状态,可以用函数来清除这个设置: 在MainFrame那个类中,CreateDocablePane之前,调用EnableLoadD ...
- virtualBox NAT模式,设置虚拟机可上网,宿主机可访问虚拟机的方法
环境描述: 宿主机:windows Server 2008 64bit,IPV4地址,有网络. 宿主机上的主要软件环境: virtualBox 5.0.24 virtualBox中安装了CentOS ...
- web环境中微信JS-SDK配置
一.公众号相关设置 首先,在公众号中进行JS安全域名的设置,在公众号设置-功能设置中选择JS接口安全域名,点击设置进入设置对话框.按照要求逐步进行,完成设置. 二.页面请求发送与处理 引入所需js: ...
- (转) SQL Server编程系列(1):SMO介绍
最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见, ...
- (转载)通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔
转载自:https://blog.csdn.net/lifetragedy/article/details/7708724 参考文章:tomcat以及常用web容器线程池的实现原理https://bl ...
- 问题 B: 【例9.3】求最长不下降序列(基础dp)
问题 B: [例9.3]求最长不下降序列 时间限制: 1 Sec 内存限制: 128 MB提交: 318 解决: 118[提交][状态][讨论版][命题人:quanxing] 题目描述 设有由n( ...