繁体   English   中英

从另一个列表的索引打印列表项索引

[英]Print list item index, from index of another list

到目前为止,这是我拥有的代码,带有适当的缩进,但是我不知道如何在此处执行。 我正在尝试打印最大和最小降雨量的月份,但是到目前为止,我只打印最大/最小降雨量的指数。 例如,我要打印: 'Highest rainfall: 45 mm in January''Lowest rainfall: 12 mm in March' 但到目前为止,我只是在打印'Highest rainfall: 2 (index of max in rain)' ,而不是月份。

def main():  
    rains = []  
    months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']  
    for month in range(12):  
       rain = eval(input('Enter the amount of rain for ' + months[month] + ': '))  
       rains.append(rain)  
    total = sum(rains)  
    average = (total/len(rains))  
    print()  
    print('The Rain Amounts:')  
    print(rains)  
    print()  
    print('Total Rainfall:', (round(total,2)), 'mm.')  
    print('Average Rainfall:', (round(average,2)),'mm.')  
    print('Highest rainfall:', rains.index(max(rains)), 'mm in', months.index(rains.index(max(rains))))  
    print('Lowest rainfall:', rains.index(min(rains)), 'mm in', months.index(rains.index(min(rains))))  

main()  

像这样:

import operator   

months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
rains = [12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 2, 1]  

index, value = max(enumerate(rains), key=lambda p: p[1])
print "Month with max rain: " + months[index]
index, value = min(enumerate(rains), key=lambda p: p[1])
print "Month with min rain: " + months[index]

输出:

Month with max rain: January
Month with min rain: December

现场演示

max_rain = max(rains)
max_rain_months = [months[i] for i,amt in enumerate(rains) if amt == max_rain]
print("Highest rainfall:", max_rain, "mm in", ', '.join(max_rain_months))

min相似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM