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爬虫抓取豆瓣电影TOP100及用户头像的方法
Jan 20 Python
python 网络爬虫初级实现代码
Feb 27 Python
详解Python pygame安装过程笔记
Jun 05 Python
python实现京东秒杀功能
Jul 30 Python
python3+requests接口自动化session操作方法
Oct 13 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
用python做游戏的细节详解
Jun 25 Python
softmax及python实现过程解析
Sep 30 Python
Python 脚本的三种执行方式小结
Dec 21 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
python3 循环读取excel文件并写入json操作
Jul 14 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 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缓存函数的使用说明
2013/05/10 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
VBScript版代码高亮
2006/06/26 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
python入门基础之用户输入与模块初认识
2016/11/14 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
python Celery定时任务的示例
2018/03/13 Python
pandas带有重复索引操作方法
2018/06/08 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
python中如何进行连乘计算
2020/05/28 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
Europcar比利时:租车
2019/08/26 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
残疾人小组计划书
2014/04/27 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
商业用房租赁协议书
2014/10/13 职场文书
银行给客户的感谢信
2015/01/23 职场文书
特此通知格式
2015/04/27 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技