输出后总是会只能删掉一个最值而无法删掉所有最值,如何做到删去所有最值?为什么在if后面加上.count(n)会报错?
请问这个问题我该怎么修改步骤
输出后总是会只能删掉一个最值而无法删掉所有最值,如何做到删去所有最值?为什么在if后面加上.count(n)会报错?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-天际的海浪 2022-03-10 02:11关注
你不要修改正在循环的列表
改成这样
你题目的解答代码如下:numbers = eval(input()) n = max(numbers) m = min(numbers) res = [] for i in numbers: if i!=n and i!=m: res.append(i) print(res)
因为移除了一个元素之后其后面元素的索引值都会减一,列表长度也会减一。
但循环索引只会加1,不会跟着减1。这样会跳过一个元素.
比如一开始循环索引值是0,移除了索引值是0的元素之后,原来索引值为1的元素的索引值减一变成0。原来索引值为2的元素的索引值减一变成1。
下一次循环索引加1。移除索引值是1的元素(原来索引值为2的元素),原来索引值为1的元素就被跳过了。
对于一边循环一边删除的操作,可以用倒序循环。numbers = eval(input()) n = max(numbers) m = min(numbers) for i in range(len(numbers)-1,-1,-1): if numbers[i]==n or numbers[i]==m: numbers.pop(i) print(numbers)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥20 想用ollama做一个自己的AI数据库
- ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
- ¥15 请问怎么才能复现这样的图呀