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批量导出导入MySQL用户的方法
Nov 15 Python
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
Python采用Django开发自己的博客系统
Sep 29 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
May 24 Python
Python面向对象编程之继承与多态详解
Jan 16 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
python实现泊松图像融合
Jul 26 Python
Python matplotlib画曲线例题解析
Feb 07 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
Apr 08 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
Python tkinter实现日期选择器
Feb 22 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
用PHP将数据导入到Foxmail
2006/10/09 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
js中日期的加减法
2015/05/06 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
用python 制作图片转pdf工具
2015/01/30 Python
Python入门学习之字符串与比较运算符
2015/10/12 Python
Python3实现Web网页图片下载
2016/01/28 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
python装饰器深入学习
2018/04/06 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
教师个人剖析材料
2014/02/05 职场文书
材料会计岗位职责
2014/03/06 职场文书
班级读书活动总结
2014/06/30 职场文书
学校师德师风整改方案
2014/10/28 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers