专栏首页三木的博客Python中list的遍历

Python中list的遍历

在python中,若要遍历一个list而且需要在遍历时修改list,则需要十分注意,因为这样可能会导致死循环,例如:

In [10]: ls = ['hello', 'world', 'bugggggggg']

In [11]: for item in ls:
   ....:     if len(item) > 5:
   ....:         ls.insert(0, item)
   ....:         print ls
   ....:         
['bugggggggg', 'hello', 'world', 'bugggggggg']
['bugggggggg', 'bugggggggg', 'hello', 'world', 'bugggggggg']
['bugggggggg', 'bugggggggg', 'bugggggggg', 'hello', 'world', 'bugggggggg']
...

所以,为了安全起见,在遇到需要修改列表的时候,都不对列表本身进行遍历,而是创建一个列表的备份,然后对这个备份进行遍历,从而避免了上述情形。例如:

In [20]: In [10]: ls = ['hello', 'world', 'bugggggggg']

In [21]: for item in ls[:]:
   ....:     if len(item) > 5:
   ....:         ls.insert(0, item)
   ....:         

In [22]: print(ls)
['bugggggggg', 'hello', 'world', 'bugggggggg']

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux权限管理

    Linux权限管理是其一大特色,优秀的权限管理机制为Linux安全性提供了可靠的保障。 ###一、用户权限管理: root用户是系统的超级用户,是Linux系统...

    用户1214695
  • Linux shell 程序设计2——bash的内置命令

    常用的内置命令忽略,来看看shell编程中其他一些重要的内置命令: 1、help:显示所有内置命令列表,或显示一个具体命令的用法。 -s: 表示列出命令的语法...

    用户1214695
  • React 概要

    React 简介 React 是一个开源的javascript库,用来构建用户接口(UI)。下图是React的一些基本信息: ? React 的特点 单向数据流...

    用户1214695
  • 万字长文综述:给你的数据加上杠杆——文本增强技术的研究进展及应用实践

    文章系统性地回顾了自然语言处理领域中的文本增强技术在近几年的发展情况,重点列举和讨论了 18 年、19 年中人们常用的五类文本增强技术路径以及对应的代表性技术。...

    机器之心
  • python 可接受任意参数的函数

    def avg(first, *rest): return (first + sum(rest)) / (1 + len(rest))

    用户5760343
  • 前端爬坑日记之vue内嵌iframe并跨域通信

    由于该项目是基于原本的安卓app,做的微信h5,所以原来的使用webview的页面现在需要在vue中实现,那就是使用iframe 查看了很多很多文档,其中这一...

    双面人
  • 前端-朝花夕拾-vue-Element小技巧

    A:官网有配置主题的页面可以配置后下载使用element.eleme.cn/#/zh-CN/the…

    吴文周
  • salesforce 零基础开发入门学习(七)PickList的value值获取

        之前介绍过PickList类型的声明以及赋值,但是如何取出呢?一个sObject对象可以理解为一条数据。通过sObject直接取恐怕很难做到,因为他只会...

    用户1169343
  • MyBatis Generator产生的Example类

    or()方法会产生一个新的Criteria对象,添加到oredCriteria中,并返回这个Criteria对象,从而可以链式表达,为其添加Criterion。...

    亦山
  • Pycon2014 in Shanghai

    happy123.me

扫码关注云+社区

领取腾讯云代金券