如何在Python多维列表monthlyAVG中查找最值并关联月份?
解决方法:找出温度最值对应的月份
嘿,作为Python新手,这个需求其实很好上手!我给你拆解一下步骤,再附上完整代码,保证你一看就懂~
首先,咱们先明确你的数据结构:monthlyAVG里的每个子列表都是[月份, 最高气温, 最低气温],我们要从所有气温(不管是最高还是最低)里找出最小的数值和最大的数值,再对应上它们的月份,最后按要求格式输出。
实现思路
- 把所有的「气温-月份」组合收集到一个列表里,这样方便我们直接用Python内置的
min()和max()函数找最值。 - 利用元组的特性:当比较元组时,Python会先对比第一个元素(这里就是气温),所以把气温放在元组的第一位,月份放在第二位,
min()和max()就能直接帮我们找到对应气温的条目。 - 最后把找到的最小、最大条目里的月份和气温按格式拼接输出。
完整代码示例
# 你的原始数据 monthlyAVG = [["January",6,3],["February",7,3],["March",10,4],["April",13,6],["May",17,9],["June",20,12],["July",22,14],["August",21,14],["September",19,12],["October",14,9],["November",10,6],["December",7,3]] # 收集所有气温和对应的月份 all_temperature_pairs = [] for month, high_temp, low_temp in monthlyAVG: # 把最低气温和月份加入列表 all_temperature_pairs.append( (low_temp, month) ) # 把最高气温和月份加入列表 all_temperature_pairs.append( (high_temp, month) ) # 找到气温最低的条目和最高的条目 lowest_entry = min(all_temperature_pairs) highest_entry = max(all_temperature_pairs) # 按要求格式输出:月份 气温 月份 气温 print(f"{lowest_entry[1]} {lowest_entry[0]} {highest_entry[1]} {highest_entry[0]}")
代码解释
- 遍历
monthlyAVG时,我们用解包的方式把每个子列表里的三个元素分别赋值给month、high_temp、low_temp,这样代码更清晰。 all_temperature_pairs里的每个元素都是(气温, 月份)的元组,比如(3, "January")、(22, "July")。min(all_temperature_pairs)会返回第一个气温最小的元组(这里是(3, "January"),因为January是第一个出现3的月份),max()同理返回气温最大的元组(22, "July")。- 最后用f-string把月份和气温拼接起来,就得到你想要的输出啦~
运行这段代码,输出就是:January 3 July 22,完全符合你的要求!
内容的提问来源于stack exchange,提问作者finalerock44
相关产品推荐
相关产品推荐

