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的知识。但是谢谢你这么快的回复!