haoge404407 发表于 2021-5-14 09:32:29

python

【问题描述】小O的期末考试成绩出来了,他想要整理出自己考得最好的科目,向小L炫耀一番,你能帮帮他吗?

【输入形式】一行若干个正整数,表示小W考试科目的成绩,中间用空格分隔。

【输出形式】一行若干个正整数,中间用空格分隔,表示小W成绩最高的科目是哪几科(编号),若有多门科目成绩并列最高,那么从小到大输出这些科目(编号)。

【样例输入】

100 99 98 97 100

【样例输出】

1 5

【样例说明】按照输入顺序,第1门和第5门同为100分,是最高分,故输出“1 5”
【评分标准】全部通过为满分


我目前只写出这么点
a = input().split(' ')
b=[]
for i in a:
    b.append(int(i))
print(b)
c=b.copy()
d=c.index(max(b))+1

主要是那个5一直输出不了,所以想问一下各位大佬,如何输出那个5?写一下完整代码,拜托了!!!

LuLD 发表于 2021-5-14 11:17:17

本帖最后由 LuLD 于 2021-5-14 11:45 编辑


我是这么玩的,来个大佬简化一下
判定每个数值是否等于此列表中的最大值,返回下标

a = input().split(' ')
b=[]
for i in a:
    b.append(int(i))
print(b)


d = []
for i in range(len(b)):
        if b == max(b):
                d.append(i+1)
print(d)

我自己简化一下
print([(i+1) for i in range(len(b)) if b == max(b)])

灰晨 发表于 2021-5-14 11:28:02

index只会返回第一个符合条件的索引,这得用enumerate
a = input().split(' ')
b=[]
for i in a:
    b.append(int(i))
print(b)
c=b.copy()
print()

foxiangzun 发表于 2021-5-14 11:46:56

LuLD 发表于 2021-5-14 11:17
我是这么玩的,来个大佬简化一下
判定每个数值是否等于此列表中的最大值,返回下标

简化结果:

a = input().split(' ')
b =
print(b)
d = [(i + 1) for i in range(len(b)) if b == max(b)]
print(d)

LuLD 发表于 2021-5-14 11:48:20

foxiangzun 发表于 2021-5-14 11:46
简化结果:

哈哈哈 感谢,我刚自己也试着简化了一下
页: [1]
查看完整版本: python