dat=['1', '2', '3', '0', '0', '0']for item in dat:if item == '0':dat.remove(item)print(dat)
#按要求是把'0'都删掉的,输出结果是['1', '2', '3', '0'] ??

首先,remove(x) 移除的是序列首次碰到的元素x

理解:

遍历列表,item每一次都会变化,可以想象有一个指针指向后一个元素,指针是递增的,从头元素到尾元素直至遍历完。

容易想到指针 0 --> 1 --> 2 --> 3

到第四个元素(dat[3]), dat[3]=='0',dat.remove(item), dat=['1','2','3','0','0']        #列表现在有五个元素

继续:

指针指向第五个元素(dat[4]),dat[4]=='0',dat.remove(item), dat=['1','2','3','0']    #列表现在有四个元素

继续:

指针指向(查找)下一个元素(第六个),哎?  此时dat列表只剩下四个元素,找不到第六个,自然就结束循环了!

得出:

列表的增删操作最好不要在for循环里做,迭代内容随着循环而改变了,这样既不安全也没必要,

换句话说,就是在循环的时候,不要让循环体的(指针/索引)啥的发生变化

解决:

可以通过复制一个新的表来做删除操作

dat=['1', '2', '3', '0', '0', '0']
d = dat.copy()
for item in dat:if item == '0':d.remove(item)
print(d)

转载于:https://www.cnblogs.com/jinfengJeff/p/10632815.html

python之循环(增删)内使用list.remove()相关推荐

  1. python for 循环中使用 remove 删除列表中的元素

    python for 循环中使用 remove 删除列表中的元素 错误的代码 # !/usr/bin/python # encoding: utf-8 # -*- coding: utf8 -*- o ...

  2. chatgpt赋能python:Python中如何实现内循环到外循环

    Python中如何实现内循环到外循环 Python是一种广泛使用的编程语言,其文本解析和数据结构操作灵活,让Python编程变得非常简单.在Python编程中,内循环到外循环是常见的问题,因此本文将着 ...

  3. 【Python】第二章 内置数据类型

    该文章内容整理自<Python编程:从入门到实践>.<流畅的Python>.以及网上各大博客 文章目录 内置数据类型 变量 基本运算 特殊值 布尔值 数字类型 序列 字符串 转 ...

  4. Python学习笔记:常用内建模块2:collections

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. python遍历循环怎么理解_聊聊python中的循环遍历

    python之循环遍历 关于循环遍历大家都知道,不外乎for和while,今天我在这写点不一样的循环和遍历.在实践中有时会遇到删除列表中的元素,那么循环遍历列表删除指定元素该怎么做呢? 还是直接上代码 ...

  6. python无限循环条件循环_Python - 条件控制、循环语句 - 第十二天

    Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...

  7. Python编写循环的两个建议 | 鹅厂实战

    作者 | piglei(腾讯高级工程师) 转载自腾讯技术工程知乎专栏 循环是一种常用的程序控制结构.我们常说,机器相比人类的最大优点之一,就是机器可以不眠不休的重复做某件事情,但人却不行.而" ...

  8. 独家 | 数据科学家的必备读物:从零开始用 Python 构建循环神经网络(附代码)...

    作者:Faizan Shaikh 翻译:李文婧 校对:张一豪 本文约4300字,建议阅读10+分钟. 本文带你快速浏览典型NN模型核心部分,并教你构建RNN解决相关问题. 引言 人类不会每听到一个句子 ...

  9. python for循环删除

    python for循环遍历时,能动态删除元素吗?本文讲给你答案. 先来上个代码: # -*- coding:utf-8 -*- list = [1,2,3,4,5,6,7,8]# 使用for 删除某 ...

  10. python循环语句-Python for循环控制语句一般格式及方法

    for循环语句是python中的一个循环控制语句,任何有序的序列对象内的元素都可以遍历,比如字符串.列表List.元组等可迭代对像.之前讲过的if语句虽然和for语句用法不同,但可以用在for语句下做 ...

最新文章

  1. python tkinter 滚动条_如何在tkinter窗口中添加滚动条?
  2. 使用Fedora之VMware 虚拟机安装Fedora
  3. Bootstrap组件_警告框
  4. TokenInsight:反映区块链行业整体表现的 TI 指数较昨日同期上涨9.79%
  5. 56. SAMBA 服务器
  6. 「本地搭建」worpress博客系统
  7. windows 10 Office 2016 安装
  8. FTP测试手机软件画画教程图片,「推荐」手机、平板绘画党福利!10个非常好用的绘画App赶紧试试...
  9. RINEX 3.02版本文件格式介绍
  10. 阿丹学理财之资产配置
  11. HCIE学习笔记(2)之ISIS Overload
  12. labwindows制作特殊图形面板
  13. 健身菜鸟需要掌握哪些基本的健身常识
  14. 算法竞赛命题指南(命题流程、Polygon的使用等)
  15. 洛谷 P1538 迎春舞会之数字舞蹈
  16. Spring Boot默认异常处理BasicErrorController源码解读
  17. 戴尔微型计算机3048,戴尔5460一体机拆解,戴尔3048一体机
  18. 学校校车运营各项安全管理制度_学校校车安全管理制度.doc
  19. win7搜索文件 服务器,win7系统搜索不到文件的解决方法
  20. 软件设计师中级复习小总结

热门文章

  1. 剑指offer (05):替换字符串中空格 (C++ Python 实现)
  2. Python中np.sum()对axis的个人理解,超详细
  3. Python爬虫实战02:分析Ajax请求并抓取今日头条街拍
  4. webpack 4.0 中 clean-webpack-plugin 的使用
  5. 怎样制作网吧服务器,网吧游戏服务器制作的过程是怎样的
  6. 设置log缓存_全局变量、事件绑定、缓存爆炸?Node.js内存泄漏问题分析
  7. 扩展欧几里得算法(双六游戏)
  8. Spring Cloud Stream与RabbitMQ 消费者 消息分组
  9. linux原子方式,linux – 以原子方式移动目录
  10. tftp 查看服务器文件,如何从命令提示符列出Windows tftp服务器目录和文件?