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实现socket客户端和服务端简单示例
Feb 24 Python
python实现自动更换ip的方法
May 05 Python
Python 3.x 新特性及10大变化
Jun 12 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
详解python--模拟轮盘抽奖游戏
Apr 12 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
Python动态声明变量赋值代码实例
Dec 30 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
一篇文章弄懂Python关键字、标识符和变量
Jul 15 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下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
单链表反转python实现代码示例
2018/02/08 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
python实现一个简单的ping工具方法
2019/01/31 Python
Django用户身份验证完成示例代码
2020/04/03 Python
python交互模式基础知识点学习
2020/06/18 Python
幼儿园家长寄语
2014/04/02 职场文书
公司门卫岗位职责范本
2014/07/08 职场文书
师德师风剖析材料
2014/09/30 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
班主任开场白
2015/06/01 职场文书
2015年国培研修感言
2015/08/01 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书