python列表的逆序遍历实现


Posted in Python onApril 20, 2020

引题:该题源自一个网友的求助,作为水群龙王的我义不容辞的接下了这道题目,先来看题目:

python列表的逆序遍历实现

拿到这道题,题目的意思已经很清楚了,列表里含有2的元素都需要删除,然后输出删除后的新列表。我首先想到的思路就是使用for循环遍历字符串,利用字符串操作符x in s(如果x是s的子串,返回True,否则返回False),使用if函数 ,若为True则删除(remove)该元素。最终输出新列表。

     思路代码及运行结果如下(这是错的)

python列表的逆序遍历实现

错误实例

观察输出结果,跟原列表相比虽然剔除了一些含2的元素,但是并没有完全剔除,为什么?

 来分析一下python是根据列表元素的下标来遍历的。于是最开始元素123下标为1, 元素212下标为2。第一遍循环执行了s.remove,删除了元素123。当进入第二遍循环时!!!重点来了,注意 此时元素123已经是被删除了, 所以元素212的下标由1变成了0,元素434下标由2变成了1。而下标为0已经在第一遍循环中执行了,故第二遍循环会寻找下标为1的元素。

写到这 想必大家已经知道为什么输出结果中212没有被删除,因为这2货压根就没有被python发现,坐上了前一个元素的位置逃过了例行检查。元素1215为什么也没被删除??因为它下标变成了前面的元素231的位置,逃过了python大哥的例行检查。

好了,出错的原因已经找到了,怎么解决呢?遍历呢就像一条路,你可以从路的起点走到终点,也可以从路的终点走到起点。刚才我们是正序遍历,解决不了问题,那我们倒过来呢?试一下。

倒序遍历的结构可以是这样的: for i in range(len(s)-1,-1,-1)

代码及运行结果如下(这是正确的)

python列表的逆序遍历实现

正确实例

可以看到 我们已经得到了想要输出的结果,关于为什么倒序不会出现问题这里不再过多解释 (因为我不知道怎么解释哈哈哈)只用记住利用for循环遍历删除元素时应该从后往前遍历,否则会出现列表越界的情况。

除了使用remove方法外 我们还有没有别的选择呢?当然是有的咯 python别的不多就是函数超级多。

总结实现列表逆序遍历方法可以有如下几种(还有更多):

python列表的逆序遍历实现

多种方法总结

到此这篇关于python列表的逆序遍历实现的文章就介绍到这了,更多相关python列表的逆序遍历内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中查看变量内存地址的方法
May 05 Python
Django如何实现内容缓存示例详解
Sep 24 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
python实现windows下文件备份脚本
May 27 Python
Python实现合并两个列表的方法分析
May 28 Python
Python运维自动化之nginx配置文件对比操作示例
Aug 29 Python
关于Python作用域自学总结
Jun 10 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
Jul 15 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
flask框架json数据的拿取和返回操作示例
Nov 28 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
python sitk.show()与imageJ结合使用常见的问题
Apr 20 #Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 #Python
python 错误处理 assert详解
Apr 20 #Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
Apr 20 #Python
在ipython notebook中使用argparse方式
Apr 20 #Python
Python绘制全球疫情变化地图的实例代码
Apr 20 #Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 #Python
You might like
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
浅析php header 跳转
2013/06/17 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
php接口隔离原则实例分析
2019/11/11 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
Hammitt官网:设计师手袋
2020/05/23 全球购物
大学生毕业求职信
2014/06/12 职场文书
小学数学课题方案
2014/06/15 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2014年领班工作总结
2014/11/25 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
中国合伙人观后感
2015/06/02 职场文书
欠条格式范本
2015/07/03 职场文书
高中化学教学反思
2016/02/22 职场文书
创业计划书之美甲店
2019/09/20 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server