[PYTHON] for循环中关于列表list中remove method 不得不说的秘密
在学习for loop的时候,是否遇到过这样情况,在遍历列表的时候,无论是用remove方法还是通用del 不能删掉想删除的元素?
首先list中remove method 可以直接删除 想删掉的值,例:a=['h','z','j',1,2,3]->a.remove(h)->a.remove(1)->a=['z','j',,2,3]
del 通用方法呢 要使用统一的下标,通过下标来删掉对应的值,例:a=['h','z','j',1,2,3]->del a[0]->del a[4]->a=['z','j',1,3]
但是,我们把他放在for循环里是什么样呢?
本来我们想要的是,删除列表中每一个元素,但是为什么列表还会剩两个值?
因为具体过程如下:
1、当第一次删除后,后面的元素会前移,此时a=[2,3,4,5]#第一个元素可以正常删除
2、然后指针下一次会指向新列表的第二个元素(即初始状态的第三个位置),从而初始状态的第二个位置被跳过了,初始第三个位置被删除,接着后面的元素又再次前移(变成[2,4,5])
#指针对应的下标为2 ,因为发生位移,第二次遍历的时候i的值直接指向第二位,也是3
3、指针指向新列表的第三个元素,即初始状态的第5个元素5,然后5被删除了,因此只剩下[2,4]
#第一次:a=[1,2,3,4,5]->a=1 第二次:a=[2,3,4,5]->指针发生变法i=3 同理第三次i=5
如果数据量不是特别大的时候,可以尝试复制一份对应的数据,遍历旧数据的时候,删除新数据里的值,这样就实现了
这样就实现了删除列表,或者也可以建立新列表,每次遍历直接添加需要提取的元素
当然你要想删除列表,只需要clear method 就好了。
今天写的是,指针的问题,后面当然没有什么用,道理明白就好。
转载于:https://www.cnblogs.com/hongzejun/p/7900892.html
[PYTHON] for循环中关于列表list中remove method 不得不说的秘密相关推荐
- python 类中定义列表_Python3中的自定义列表类,具有
我想用python3编写一个自定义列表类,就像在这个问题How would I create a custom list class in python?中一样,但与该问题不同,我想实现__get__ ...
- python socket多线程 获取朋友列表_python中的(多线程)套接字列表/数组
我对python有点陌生.我正在尝试在一个程序中创建和使用一个套接字列表/数组.所以我声明了一个数组,如下所示:myCSocks = ['CSock1', 'CSock2', 'CSock3', 'C ...
- python数字排序_python按照列表元素中的数字大小排序
[Human Sorting] 常见的python排序只需要一个sort或者sorted函数即可.但是默认采用的是字典序,这会带来一个问题,如果列表中的元素是字符串+数字组合,往往无法得到我们想要的排 ...
- python for循环九九乘法表_Python中的九九乘法表(for循环)
用for循环写出的九九乘法表(包括函数的调用) #方向一 for i in range(1,10): for j in range(1,i+1): d = i * j print('%d*%d=%-2 ...
- python io流,Python io流会在列表理解中自动关闭吗?
For example I have the following code: d = [l for l in open('a.txt', 'r')] After d is created, will ...
- css中去掉列表ul中的圆点
去掉圆点只需要一句代码就好: ul {list-style-type: none; } list-style-type属性是设置列表前面标志的类型,详细信息可以查看这个链接 http://www.ru ...
- Python学习笔记19:列表 III
Python学习笔记19:列表 III 其实这篇笔记标题应该是列表扩展,从列表开始,将涵盖Python中的序列容器. 关于列表的基础知识,可以看我的前两篇文章: Python学习笔记1:列表. Pyt ...
- python for 循环中使用 remove 删除列表中的元素
python for 循环中使用 remove 删除列表中的元素 错误的代码 # !/usr/bin/python # encoding: utf-8 # -*- coding: utf8 -*- o ...
- python中的for语句涉及的序列可以是列表_Python中的列表与循环
文章中的所有例子全部经过实际测试,可以直接使用.开发环境是python 3.8.5 条件和循环 本章的主要内容是Python的条件和循环语句.主要涉及if.else.elif.while.for.ra ...
最新文章
- 3年5000家,苏宁小店如何立足“中国第一O2O社区小店”?
- 5.Spring Security 短信验证码登录
- LiteIDE 编写Go的单元测试
- node js 技术架构_[视频] Node JS中的干净架构
- 在 Redis 上实现的分布式锁
- iPhone 7疯狂生产 苹果提升在印度存在感
- windows 自带计算器 calc 的使用
- (1)非对称加密——RSA——史上最通俗的小白可看懂!
- 南航计算机专业哪个校区,今天被南航拟录取了,写点干货留给后来人(学校选择+初试+复试)...
- vue项目引入阿里巴巴矢量图标库图标
- 微信聊天功能软件测试用例,软件测试用例实例之常见功能测试点
- SRE(运维工程师)的核心能力
- jsp页面使用大于号等
- 半导体储存器例题小试--十安辰
- 为什么要用大写L替换小写L(l),idea提醒literal ‘xxx‘ ends with lowercase ‘l‘
- python秒表游戏代码_在pygam游戏中添加秒表
- 小米watch s2功能介绍 小米watch s2测评值得买吗
- 微信小程序用canvas画图并分享
- jquery easyui 全部图标
- file:/usr/local/hive/iotmp/89de7dfe-8f26-4a6e-87b4-bacd16c2b2c8/hive_2021-11-05_05-06-07_555_3392062
热门文章
- jmeter ---实战(详解)
- web前端技术基础课程讲解之浅谈对soket的理解
- Java基础之面向对象的特征。
- JSP中meta http-equiv=pragma content=no-cache属性ttp-equiv功能介绍转载
- 编译 Apache Karaf 2.2.9遇到找不到jar包问题的解决方案
- 无需深厚技术背景,也可以做好系统和应用维护管理
- Vue为何采用异步渲染
- Js中String对象
- devops实践指南_DevOps:掌握这些便捷指南
- sysadmin默认密码_Sysadmin指南,开源电子邮件客户端,macOS应用程序,SELinux,Firefox扩展等...