ななこ~ 2022-03-10 01:41 采纳率: 100%
浏览 31
已结题

请问这个问题我该怎么修改步骤

img

img


输出后总是会只能删掉一个最值而无法删掉所有最值,如何做到删去所有最值?为什么在if后面加上.count(n)会报错?

  • 写回答

3条回答 默认 最新

  • 关注

    你不要修改正在循环的列表
    改成这样
    你题目的解答代码如下:

    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)
    

    img


    因为移除了一个元素之后其后面元素的索引值都会减一,列表长度也会减一。
    但循环索引只会加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)
    
    
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 3月10日

悬赏问题

  • ¥50 请教 麒麟系统挂载怎么安装
  • ¥15 如何在ns3中实现路径的自由切换
  • ¥20 SpringBoot+Vue3
  • ¥15 IT从业者的调查问卷
  • ¥65 LineageOs-21.0系统编译问题
  • ¥30 关于#c++#的问题,请各位专家解答!
  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro