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实现一个Git日志统计分析的小工具
Dec 14 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
Puppeteer使用示例详解
Jun 20 Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 Python
python实现邮件发送功能
Aug 10 Python
python统计指定目录内文件的代码行数
Sep 19 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
Mar 24 Python
Python pip 常用命令汇总
Oct 19 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
python 通过使用Yolact训练数据集
Apr 06 Python
Django基础CBV装饰器和中间件
Mar 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
层叠菜单的动态生成
2006/10/09 PHP
PHP 如何向 MySQL 发送数据
2006/10/09 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
django页面跳转问题及注意事项
2019/07/18 Python
Django ModelForm操作及验证方式
2020/03/30 Python
python中shell执行知识点
2020/05/06 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
造价工程师个人求职信
2013/09/21 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
2015年财政局工作总结
2015/05/21 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL