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新手在作用域方面经常容易碰到的问题
Apr 03 Python
详解Python中的strftime()方法的使用
May 22 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
Dec 07 Python
Python实现繁体中文与简体中文相互转换的方法示例
Dec 18 Python
5款Python程序员高频使用开发工具推荐
Apr 10 Python
Python 列表去重去除空字符的例子
Jul 20 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
Jun 30 Python
python 实现德洛内三角剖分的操作
Apr 22 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
PHP正则验证Email的方法
2015/06/15 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
Vuex 入门教程
2018/01/10 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
Python实现带百分比的进度条
2016/06/28 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
python实现对输入的密文加密
2019/03/20 Python
Python实现对adb命令封装
2020/03/06 Python
python怎么对数字进行过滤
2020/07/05 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
大四毕业生学习总结的自我评价
2013/10/31 职场文书
英文版销售经理个人求职信
2013/11/20 职场文书
车间工艺员岗位职责
2013/12/09 职场文书
新领导上任欢迎词
2014/01/13 职场文书
企业申诉管理制度
2014/01/30 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
公证委托书
2014/08/01 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript