所以我有以下代码
n = int(input())
arr = map(int, input().split())
numList = list(arr)
topNum = max(numList)
for i in numList:
if i == topNum:
del numList[numList.index(i)]
print(numList)
它接受以下输入
5
2 3 6 6 5
这个想法是删除所有出现的顶级数字,但我有一个bug,它只删除一次顶级数字。我已经检查过,如果它等于最上面的数字,就打印它,并且在测试时打印了两次,所以我知道它与if语句和for循环无关,所以它一定与我删除它的方式有关?如果是这样的话,为什么它在for循环中只删除一次呢。我知道这意味着只删除第一个事件,但这就是为什么我有for循环
您不应该修改正在迭代的列表
下面是一种使用函数式编程方法实现所需功能的方法。与您的方法相同,您将输入映射为整数,然后我们使用过滤器忽略输入中等于n的任何数字
相关问题 更多 >
编程相关推荐