python 一个小问题,想不出来了😭

原题是:

img


我的做法是:

img


结果只能输出一次,请问这个哪里错了?正确的应该怎么做?感谢各位啦!


ls = list(map(int,input().split()))
for i in range(len(ls)):
    if ls[i] == max(ls):
        print(i+1,end=" ")

使用index获取索引值的时候,如果列表里面有多个相同的值,那么返回的索引值只会返回第一个索引

scores = list(map(int,input().split()))
res = []
for i,n in enumerate(scores):
        if n==max(scores):
                res.append(i+1)
print(*res)

你的第九行直接让你跳出了。你的逻辑没有打错,就是你没注意到m1里面装的是str类型的东西。你第九行用int去比对装着str的list,自然if条件满足,然后跳出了。
你只要改成 if str(s) not in m1就行