带你分析 Python 删除相同元素遇到的问题(附解决方法及练习题)
(资料图片)
作为初学者,我们往往使用下面的代码删除相同元素,这样做往往会遇到相同元素并没有被完全删除的问题。注意:这种情况存在于两个相同元素相邻的时候
至于为什么会出现这种情况,我们可以在上面的代码中加入 print 语句看看取出元素的情况
由此,我们不能看出 for 循环中跳过了一次可乐的选取。原因在于:刚开始,for 循环的开始下标为 0,取到第一个可乐并进行删除。此时,food_list 缩短,原本的第二个可乐下标由 1 变为 0,即 ['可乐', '薯片']。但是 for 循环继续进行,下标由上次的 0 变为了 1,取到元素的也就会是薯片,所以出现了漏删的现象
知道了发生的原因,我们只需要控制每次删除时,下标不变即可。就像上面分析的,删除完第一个可乐,继续保持下标为 0,这样就能保证下次还能取到第二个可乐。为此,我们使用 while 循环进行控制。由此,引出解决方法 1:
同样的提供两种更优秀的解决方法:
解决方法 2:本质就是判断可乐在不在列表中,如果在就执行 remove 删除可乐,继续循环判断可乐在不在列表中,如果在就继续执行删除,直到可乐不在列表中,循环退出
解决方法 3:这种方法本质上是创建了一个新的列表 ['薯片', '可乐', '可乐'],这个列表被用于索引。而原来的列表 ['可乐', '可乐', '薯片'] 将被用于删除,这样即使原来的列表遭到删除,也不会影响到索引列表
好了,理解了上面的方法,接下来我将出一道题目:首先,给你一个列表 [4, 37, 51, 50, 8, 95] 请删除其中不小于 50 的数,答案是 [4, 37, 8]
请在评论区给出你写的答案,让大家帮你批改。本期专栏就到此结束了,这里不分享基础知识点,我只会继续分享一些进阶的知识与小技巧
标签:
- 带你分析 Python 删除相同元素遇到的问题(附解决方法及练习题)
- 任天堂Switch游戏主机即将破3000万台
- 张冠武会见兴业银行党委书记、董事长吕家进一行
- 广东廉江发生一起故意伤害案致6死1伤,警方通报:25岁嫌犯被抓获
- 度假农庄行业市场调研 生态度假农庄市场发展趋势及现状分析2023
- 温网:阿尔卡拉斯男单晋级
- 长三角新能源汽车定向赛在国家会展中心发车啦
- “两岸学者面对面”共议闽南文化
- A股申购|苏州规划(301505.SZ)开启申购应收账款占总资产比例超30%
- 每日一词|“中特估”
- 关于150210国企改b的一些信息
- 0.1psi等于多少mpa 1psi等于多少mpa
- 个人推荐表主要事迹怎么写(年度优秀员工推荐表主要事迹怎么填)
- 赛后战报丨2023LPL夏季赛常规赛赛报【上海EDG合创汽车 VS FPX】
- 盛世中华 何以中国丨送你一个长安·一梦千年
- 谱写“强富美高”新篇章——习近平总书记2023年考察江苏纪行
- 巅峰极速平民车辆推荐 平民车辆选择攻略
- 构建产业互联网新高地 助力数智集群发展提质增速
- 美国西雅图12小时内发生3起枪击案,已致两人死亡
- 冰雹、8级以上雷暴大风、短时强降水!吉林省这些地区警惕!
- 三大改造工程,超万亿元投资!这可能是钢铁行业破局关键
- 黄金峡水利枢纽下闸蓄水“引汉济渭”工程调水工程完工
- “手机中的战斗机”,波导手机今何在?
- 科学调度 压实责任
- 李玟十亿遗产曝光:香港美国两处豪宅,仅有一辆豪车,其余是存款
- 汽车熄火后电瓶电流超过多少算漏电(汽车的电瓶电流是多少安培的)
- 她和“昆明证券公司主管”网恋,投18万跟他炒股,然后……
- 这些症状可能是过敏 专家给青少年支招
- 彭世峻出乎意料,球队竞争激烈,球迷有望做出新决定!
- 刘士余,有了新职务!
- 《高山清渠》播出过半 李健用真实形象诠释黄大发的奋斗轨迹
- 现实题材电视剧《分界线》8月1日播出 何冰张国强强手过招
- 花篮的花儿香!民族歌剧《唱响南泥湾》在保利剧院迎来首演
- 韩国电信公布未来五年非基础设施投资预算拨出12万亿韩元
- 冰墩墩设计者给北京四中学生回信:祝福可爱奋进的中国少
- 江苏南通发现1人检测结果呈阳性 系外地返通人员
- 湖南郴州报告2例香港返湘人员新冠肺炎确诊病例
- 广西百色疫情社区传播链基本阻断
- 广西新增1例本土确诊病例 本轮本土疫情累计报告确诊病例
- 葫芦岛市两医院不再收治非绥中地区患者 就医患者闭环管理
- 苏州14日新增本土确诊1例,无症状感染者3例 详情及轨迹公布
- 2021年北京空气质量创历史最优 首次全面达标