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使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
Python编程中用close()方法关闭文件的教程
May 24 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
python统计多维数组的行数和列数实例
Jun 23 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
python+pyqt5实现KFC点餐收银系统
Jan 24 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
Python配置虚拟环境图文步骤
May 20 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
基于plt.title无法显示中文的快速解决
May 16 Python
Python新手学习标准库模块命名
May 29 Python
Python读取pdf表格写入excel的方法
Jan 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
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
跟老齐学Python之Python安装
2014/09/12 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
《会走路的树》教后反思
2014/04/19 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
律师授权委托书范本
2014/10/07 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
本溪水洞导游词
2015/02/11 职场文书
教你如何用cmd快速登录服务器
2022/06/10 Servers