Python列出和函数,查找降雨量的最大/最小月份

Python列出和函数,查找降雨量的最大/最小月份,python,list,Python,List,我的程序应该计算每个月的降雨量,计算一年的总降雨量、月平均降雨量以及降雨量最高(最大)和最低(最小)的月份 除最高和最低月产量外,所有工作均按计划进行。我需要显示降雨量最高和最低月份的名称。我可以获得要显示的正确值,但不能显示月份的名称 months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "No

我的程序应该计算每个月的降雨量,计算一年的总降雨量、月平均降雨量以及降雨量最高(最大)和最低(最小)的月份

除最高和最低月产量外,所有工作均按计划进行。我需要显示降雨量最高和最低月份的名称。我可以获得要显示的正确值,但不能显示月份的名称

months = ["January", "February", "March", "April",
          "May", "June", "July", "August",
          "September", "October", "November", "December"]
values = []
year = []

for i in months :
    values.append(float(input("Enter total rain for " + i + ": ")))
print()



def total():
    print("The total rainfall for the year is %.2f" % sum(values))
total()

def average():
    print("The average monthly rainfall is %.2f" % float(sum(values)/ 12))
average()

def highest():
    print("The highest monthly rainfall is", max(values))
highest()

def lowest():
    print("The lowest monthly rainfall is", min(values))
lowest()
您可以使用
月数
来计算
,并获得该值的
最小值
最大值
,即
(值,月)
的元组。确保将值放在第一位,以便用于排序

>>> months = ["January", "February", "March", "April",
...           "May", "June", "July", "August",
...           "September", "October", "November", "December"]
>>> values = [47, 2, 28, 9, 4, 64, 28, 94, 1, 9, 4, 23]  # or whatever
>>> val, month = min(zip(values, months))
>>> print("The lowest rainfall was %r in %s" % (val, month))
The lowest rainfall was 1 in September

您可以找到最小/最大值的索引,然后使用该索引查找月份。使用a是一种更具python风格的方法,但这里有另一种初学者的方法

def highest():
    print("The highest rainfall month is:",months[values.index(max(values))] )
    print("The highest monthly rainfall is", max(values))

max
min
分别返回列表中的最大值或最小值。您可以使用
index
获取该值的索引,然后使用该索引获取月份名称。例如:

def highest():
    max_value = max(values)
    ind = values.index(max_value)
    month_name = months[ind]
    print("The highest monthly rainfall is %d, occurring on %s" % \
    (max_value, month_name))

非常感谢。我还在学习Python,所以对我来说,一切都是初学者的方法。我非常感谢你的帮助!好奇的是,没有代码中的“values.index”部分,还有其他方法可以做到这一点吗?我的教科书只是勉强解释了这一点,所以我不完全理解。只是好奇,没有代码中的“values.index”部分,还有其他方法可以做到这一点吗?我的教科书只是勉强解释了这一点,所以我不能完全理解它。@AndrewN。使用
zip
是一种巧妙的方法-参见tobias_k'sanswer@Mureinik--是的,这看起来是一种有效的方法,但我们也没有学到任何关于使用zip的知识。但是谢谢你这么快的回复!