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 26进制计算实现方法
May 28 Python
Python函数返回值实例分析
Jun 08 Python
python实现感知器算法详解
Dec 19 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
windows下安装Python虚拟环境virtualenvwrapper-win
Jun 14 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
Python opencv相机标定实现原理及步骤详解
Apr 09 Python
详解python内置模块urllib
Sep 09 Python
如何在pycharm中安装第三方包
Oct 27 Python
Python超详细分步解析随机漫步
Mar 17 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
php字符串操作常见问题小结
2016/10/11 PHP
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
js实现抽奖效果
2017/03/27 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
python issubclass 和 isinstance函数
2019/07/25 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
表演方阵解说词
2014/02/08 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
二人合伙经营协议书
2014/09/13 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
教师听课评语大全
2014/12/31 职场文书
教学质量月活动总结
2015/05/11 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL