你修改了正在遍历的列表,索引过程出了问题。
很简单就不写注释了
还有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[:]试试