python列表问题,思考很久不明白

py输入一个列表a,计算得到一个元组t。元组t的第一个元素为列表a的最大值,其余元素为该最大值在列表a中的下标(考虑最大值不唯一的情况)。

a = eval(input('输入一串数字用逗号隔开:'))

m = a[0]

for i in range(1,len(a)):  #遍历列表a, 求最大值
    if a[i]>m:
        m = a[i]

res = [m] #把最大值放入结果列表

for i,n in enumerate(a): #遍历出最大值的序号
    if n==m:
        res.append(i)

res = tuple(res) #按要求把列表转成题目要求的元组

print(res)

如果允许使用max()函数,就更简单一点:

a = eval(input('输入一串数字用逗号隔开:'))

res = [max(a)] #把最大值放入结果列表

for i,n in enumerate(a): #遍历出最大值的序号
    if n==max(a):
        res.append(i)

res = tuple(res) #按要求把列表转成题目要求的元组

print(res)