引题:该题源自一个网友的求助,作为水群龙王的我义不容辞的接下了这道题目,先来看题目:

题目

拿到这道题,题目的意思已经很清楚了,列表里含有2的元素都需要删除,然后输出删除后的新列表。我首先想到的思路就是使用for循环遍历字符串,利用字符串操作符x in s(如果x是s的子串,返回True,否则返回False),使用if函数 ,若为True则删除(remove)该元素。最终输出新列表。

思路代码及运行结果如下(这是错的)

错误实例

观察输出结果,跟原列表相比虽然剔除了一些含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)

代码及运行结果如下(这是正确的)

正确实例

可以看到 我们已经得到了想要输出的结果,关于为什么倒序不会出现问题这里不再过多解释 (因为我不知道怎么解释哈哈哈)只用记住利用for循环遍历删除元素时应该从后往前遍历,否则会出现列表越界的情况。

除了使用remove方法外 我们还有没有别的选择呢?当然是有的咯 python别的不多就是函数超级多。

总结实现列表逆序遍历方法可以有如下几种(还有更多):

多种方法总结

python列表反向取值_Python列表的反向遍历,python,逆序相关推荐

  1. python 根据索引取值_Python基础知识2

    运行Python程序的两种方式 运行Python程序的三步骤(与文本编辑器对比) IDE工具----pycharm 注释 变量 基本数据类型及其内置方法 垃圾回收(GC)机制 基本运算符 流程控制(i ...

  2. python列表添加重复值_python 列表 重复添加数据库

    <Python 3程序开发指南(第2版•修订版)>--1.4 总结 本节书摘来自异步社区<Python 3程序开发指南(第2版•修订版)>一书中的第1章,第1.4节,作者[英] ...

  3. python嵌套字典取值_python嵌套字典比较值与取值的实现示例

    python嵌套字典比较值与取值的实现示例 本文通过示例给大家介绍了python嵌套字典比较值,取值,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码 #取值import t ...

  4. python 列表间隔取值_python list数据等间隔抽取并新建list存储的例子

    原始数据如下: ['e3cd', 'e547', 'e63d', '0ffd', 'e39b', 'e539', 'e5be', '0dd2', 'e3d6', 'e52e', 'e5f8', '00 ...

  5. python 列表间隔取值_python 等间隔抽取一定数量的数据

    等间隔抽取数据,可以利用numpy里面的linspace,代码如下: import numpy as np # 1表示开始位置 # 2000表示结束位置 # 100表示抽取数据个数 # int表示转换 ...

  6. python如何从列表中提取数据_Python 从列表中取值和取索引的方法

    如下所示: name_list["zhangsan","lisi","wangwu"] #1.取值 print(name_list[0]) ...

  7. 列表根据下标取值_Python基础知识点——list(列表)讲解

    前言 定义:列表是一种可变的.有序的数据结构,可以随时添加和删除其中的元素. 列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改变时.与字符串不同,列表是可变的.你可以直接对原 ...

  8. python字典取值_python 字典中取值的两种方法小结

    python 字典中取值的两种方法小结 如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name ...

  9. Python中字典取值常用的方法!

    字典是Python中比较常见的数据类型之一,它是一种可变容器模型,可以存储任意数量的任意类型的数据,而且字典中的每个元素由一个键和一个值组成,键和值之间用冒号分隔.本文为大家介绍一下Python中字典 ...

最新文章

  1. 动态的管理ASP.NET DataGrid数据列
  2. AWS — AWS 上的 MEC
  3. 【渝粤教育】广东开放大学 大学英语1 形成性考核 (43)
  4. 探索MicroPython(三)--基础操作示例
  5. 芯片短缺并未缓解,机构数据显示交付周期在7月份已超过20周
  6. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第5节 线程池_2_线程池的代码实现...
  7. 教师计算机培训心得体会范文,教师计算机教育培训学习心得体会
  8. 服务器上运行python
  9. 解决UWP应用无法使用本地代理
  10. 计算机毕业设计asp.net193酒店客房预订网站系统
  11. 用java做考试管理系统,考试管理系统的开发实现(Java+Web)
  12. HTML5简单实战--休假申请单
  13. 图像处理------Mean Shift滤波(边缘保留的低通滤波)
  14. 校企合作,人才共育|岳阳开放大学校长乐艳华一行莅临云畅科技考察交流
  15. 达梦误删除表空间文件恢复
  16. Spring Boot Admin 基于security 认证监控
  17. 电话号码查询系统(链式结构)
  18. 【操作系统概念-作业1】Introduction
  19. (Java高级程序设计-案例)-通过JDBC连接MySQL并对表进行增、删、改、查
  20. 我们只是虫子!我们真的是虫子吗?

热门文章

  1. Java基础之String深入解析
  2. Kubernetes Ingress 控制器的技术选型技巧
  3. 视频回顾丨带你逛腾讯全球数字生态大会「腾讯技术工程」展区
  4. st(state-threads) coroutine和stack分析
  5. Vallog可以识别的错误及错误提示
  6. lua实现多继承-方式1
  7. lua的面向对象编程,封装,继承,多态的实现
  8. 当 高并发系统下 Redis 发生高延迟时,其内部到底发生了什么
  9. Vue010_ 过滤器
  10. 算法设计与分析:芯片测试问题、选择问题详解