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中用memcached来减少数据库查询次数的教程
Apr 07 Python
Python实现批量将word转html并将html内容发布至网站的方法
Jul 14 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
Python socket网络编程TCP/IP服务器与客户端通信
Jan 05 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
Django 重写用户模型的实现
Jul 29 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
利用python做数据拟合详情
Nov 17 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
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
javascript 常用功能总结
2012/03/18 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
Python微信操控itchat的方法
2019/05/31 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
如何用python处理excel表格
2020/06/09 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
C语言笔试集
2012/07/24 面试题
公司人力资源的自我评价
2014/01/02 职场文书
商业用房租赁协议书
2014/10/13 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书