读入一个整数列表,输出删除最大元素和最小元素后的列表。最大元素和最小元素可能有多个

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法

img


这里是哪里有问题啊

你修改了正在遍历的列表,索引过程出了问题。
很简单就不写注释了
还有if可以单独构成单分支条件语句,不用加个没有用的else

ls = eval(input())
max_num = max(ls)
min_num = min(ls)
nums = ls.copy()
for num in nums:
    if num == max_num or num == min_num:
        ls.remove(num)
print(ls)

原因是你在循环中原地删除了列表的元素,由于列表的可变性,你需要用一份拷贝循环列表,然后在原列表上执行操作

修改成for x in lst[:]试试