Python如何在循环内使用list.remove()
作者:jinfengJeff 发布时间:2023-06-07 09:11:33
标签:Python,循环,list,remove
代码如下
dat=['1', '2', '3', '0', '0', '0']
for item in dat:
if item == '0':
dat.remove(item)
print(dat)
#按要求是把'0'都删掉的,输出结果是['1', '2', '3', '0'] ??
首先,remove(x) 移除的是序列首次碰到的元素x
理解:
遍历列表,item每一次都会变化,可以想象有一个指针指向后一个元素,指针是递增的,从头元素到尾元素直至遍历完。
容易想到指针 0 --> 1 --> 2 --> 3
到第四个元素(dat[3]), dat[3]=='0',dat.remove(item), dat=['1','2','3','0','0'] #列表现在有五个元素
继续:
指针指向第五个元素(dat[4]),dat[4]=='0',dat.remove(item), dat=['1','2','3','0'] #列表现在有四个元素
继续:
指针指向(查找)下一个元素(第六个),哎? 此时dat列表只剩下四个元素,找不到第六个,自然就结束循环了!
得出:
列表的增删操作最好不要在for循环里做,迭代内容随着循环而改变了,这样既不安全也没必要,
换句话说,就是在循环的时候,不要让循环体的(指针/索引)啥的发生变化。
解决:
可以通过复制一个新的表来做删除操作
dat=['1', '2', '3', '0', '0', '0']
d = dat.copy()
for item in dat:
if item == '0':
d.remove(item)
print(d)
来源:https://www.cnblogs.com/jinfengJeff/p/10632815.html
0
投稿
猜你喜欢
- 对于windows平台来说安装完MySQL后,系统就已经默认生成了许可表和账户,你不需要像在Unix平台上那样执行 mysql_instal
- 传参时传递可变对象,实际上传的是指向内存地址的指针/引用这个标题是我的结论,也是我在做项目过程查到的。学过C的都知道,函数传参可以传值,也可
- 本文为大家分享了pygame游戏之旅的第6篇,供大家参考,具体内容如下定义一个障碍模型函数:def things(thingx, thing
- 本文实例讲述了Python利用matplotlib绘制约数个数统计图。分享给大家供大家参考,具体如下:利用Python计算1000以内自然数
- Python函数库众多,而且在不断更新,所以学习这些函数库最有效的方法,就是阅读Python官方文档。同时借助Google和百度。本文介绍的
- 现在电子商务网站的设计,正面临着一系列的挑战,其中最主要的挑战是:我们尝试建立一种用户体验,来提高用户在线购物的可能性。为了对抗网上激烈的竞
- 本文实例讲述了Python抓取某只基金历史净值数据。分享给大家供大家参考,具体如下:http://fund.eastmoney.com/f1
- 大家都知道select的优先权比较高,CSS不宜控制,而且还能遮挡层的正常显示!那么我们就来模拟一个!这样样式就可以随心所欲了(若您看不到效
- 本文实例讲述了Python中的is和id用法。分享给大家供大家参考。具体分析如下:(ob1 is ob2) 等价于 (id(ob1) ==
- 代码如下:using System; using System.Data; using System.Configuration
- 描述cmp() 方法用于比较两个列表的元素。语法cmp()方法语法:cmp(list1, list2)参数list1 -- 比较的列表。li
- ------谁正在访问数据库?Select c.sid, c.serial#,c.username,a.object_id,b.
- 这篇文章主要介绍了Python scrapy增量爬取实例及实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 本文实例讲述了Python callable()函数用法。分享给大家供大家参考,具体如下:python中的内建函数callable( ) ,
- 代码如下:vbcrlfvbs常量相当于vbcr & vblf 就是常见的那个 chr(13) & chr(10),用Chr(
- 在我上一篇文章,我搭了一个框架,模拟了Flask网站上“@app.route(‘/')”第一条例子的行为。如果你错过了那篇“这不是魔
- 我就废话不多说了,还是直接上代码吧! url = "http://%s:%s/api-token-auth/" % (i
- 1.将 JSON 转换为 CSVimport jsonif __name__ == '__main__': &
- 一、利用webbrowser.open()打开一个网站:>>> import webbrowser >>>
- 前言“幸运牛牛套圈圈”套住欢乐,圈住幸福,等你来挑战!哈喽,大家上午好,我是你们的栗子同学,今天来给