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 相关文章推荐
python2.7的编码问题与解决方法
Oct 04 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
Python探索之实现一个简单的HTTP服务器
Oct 28 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
使用11行Python代码盗取了室友的U盘内容
Oct 23 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
pow在python中的含义及用法
Jul 11 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
python flask开发的简单基金查询工具
Jun 02 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/06/21 PHP
遭遇php的in_array低性能问题
2013/09/17 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
我的Node.js学习之路(一)
2014/07/06 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
nodejs基础知识
2017/02/03 NodeJs
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
jQuery实现增删改查
2020/12/22 jQuery
原生JavaScript实现轮播图
2021/01/10 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
python实现解数独程序代码
2017/04/12 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
python 命名规范知识点汇总
2020/02/14 Python
python中线程和进程有何区别
2020/06/17 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
体育教育专业毕业生自荐信
2013/11/15 职场文书
宿舍卫生检讨书
2014/01/16 职场文书
生物制药自我鉴定
2014/01/25 职场文书
少年闰土教学反思
2014/02/22 职场文书
党员政治学习材料
2014/05/14 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
Python matplotlib多个子图绘制整合
2022/04/13 Python
Go获取两个时区的时间差
2022/04/20 Golang