[英]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.