首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python - 2D列表过滤

Python - 2D列表过滤
EN

Stack Overflow用户
提问于 2020-11-30 00:32:27
回答 2查看 52关注 0票数 0

我已经创建了一个程序,可以定义12个月的最高、最低和平均温度,但我想通过寻找平均温度最热和最冷的月份来扩展它。我当前的代码是:

代码语言:javascript
运行
复制
def main():

    months = [ ["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] ]
    
    
    for month in months:
        month_name = month[0]
        temp = month[1:]
        
        minTemp = min(temp)
        avgTemp = sum(temp)/len(temp)
        maxTemp = max(temp)

        print (month_name, minTemp, avgTemp, maxTemp)


    
    
main()

我想添加类似这样的内容:“如果month_name具有最高平均温度,则打印month_name及其温度。如果month_name具有最低平均温度,则打印month_name及其温度。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-30 00:49:08

代码语言:javascript
运行
复制
import math
def main():

    months = [ ["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] ]
    
    mn,mx=math.inf, -math.inf
    mx_month=["",0]
    mn_month=["",0]
    for month in months:
        month_name = month[0]
        temp = month[1:]
        
        minTemp = min(temp)
        avgTemp = sum(temp)/len(temp)
        maxTemp = max(temp)
        if avgTemp<mn:
            mn_month[0],mn_month[1]=month_name,avgTemp
            mn=avgTemp
        if avgTemp>mx:
            mx_month[0],mx_month[1]=month_name,avgTemp
            mx=avgTemp
        print (month_name, minTemp, avgTemp, avgTemp)

    print("Min avg temo month and temp: ",mn_month)
    print("Max avg temo month and temp: ",mx_month)
    
    
main()
票数 1
EN

Stack Overflow用户

发布于 2020-11-30 00:47:19

将每个月的平均值附加到最小值/最大值

代码语言:javascript
运行
复制
months = [["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]]
for m in months:
    m.append((m[1] + m[2]) / 2)

_min_avg = min(months, key = lambda k: k[3])
_max_avg = max(months, key = lambda k: k[3])
print(_min_avg)
print(_max_avg)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65062457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档