鱼C论坛

 找回密码
 立即注册
查看: 1089|回复: 2

[已解决]天气平均温度查询!!求大神帮忙看看

[复制链接]
发表于 2020-6-17 13:52:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def load_date(file_name:str) -> list:
    """读取文件中的数据从第二行开始读取,并以列表形式返回"""
    """此处填写编码"""

def mapper(lines:list) ->map:
    """解析列表中的数据,以字典形式返回(key为月份,value为对应月份所有温度数据)"""
    m={}
    """此处填写编码"""
    return m

def reduce(m:map) ->map:
    """计算并返回月的平均温度,以字典形式返回(key为月份,value为平均温度)"""
    ret={}
    """此处填写编码"""
    return ret
   
   
"""调用上述定义的三个函数"""
"""此处填写编码"""
最佳答案
2020-6-17 14:35:11

应该有达到要求吧~


  1. def load_date(file_name: str) -> list:
  2.     """读取文件中的数据从第二行开始读取,并以列表形式返回"""
  3.     data = open(file_name,encoding='utf-8')
  4.     data.readline()
  5.     new_data = data.read().split('\n')
  6.     data_list = []
  7.     for i in new_data:
  8.         data_list.append(i.split(','))
  9.     return data_list

  10. def mapper(lines: list) -> map:
  11.     """解析列表中的数据,以字典形式返回(key为月份,value为对应月份所有温度数据)"""
  12.     m = {}
  13.     for i in lines:
  14.         if i[0][:6] in m:
  15.             m[i[0][:6]].append(tuple(i[1:]))
  16.             continue
  17.         m.setdefault(i[0][:6],[tuple(i[1:])])
  18.     return m

  19. def reduce(m: map) -> map:
  20.     """计算并返回月的平均温度,以字典形式返回(key为月份,value为平均温度)"""
  21.     ret = {}
  22.     for i in m:
  23.         sum = 0
  24.         count = len(m[i])
  25.         for each in m[i]:
  26.             if each[-4] == 'N/A':
  27.                 count -= 1
  28.                 continue
  29.             sum += int(each[-4])
  30.         average = sum/count
  31.         ret.setdefault(i,average)
  32.     return ret

  33. # """调用上述定义的三个函数"""
  34. data_list = load_date('beijing.txt')
  35. data_dict = mapper(data_list)
  36. calc_data = reduce(data_dict)
  37. for i in calc_data:
  38.     print('{} {:.2f}'.format(i,calc_data[i]))
复制代码

beijing.zip

36.45 KB, 下载次数: 2

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-17 14:04:28 | 显示全部楼层
赤果果的求代码    期待大神回复
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-17 14:35:11 | 显示全部楼层    本楼为最佳答案   

应该有达到要求吧~


  1. def load_date(file_name: str) -> list:
  2.     """读取文件中的数据从第二行开始读取,并以列表形式返回"""
  3.     data = open(file_name,encoding='utf-8')
  4.     data.readline()
  5.     new_data = data.read().split('\n')
  6.     data_list = []
  7.     for i in new_data:
  8.         data_list.append(i.split(','))
  9.     return data_list

  10. def mapper(lines: list) -> map:
  11.     """解析列表中的数据,以字典形式返回(key为月份,value为对应月份所有温度数据)"""
  12.     m = {}
  13.     for i in lines:
  14.         if i[0][:6] in m:
  15.             m[i[0][:6]].append(tuple(i[1:]))
  16.             continue
  17.         m.setdefault(i[0][:6],[tuple(i[1:])])
  18.     return m

  19. def reduce(m: map) -> map:
  20.     """计算并返回月的平均温度,以字典形式返回(key为月份,value为平均温度)"""
  21.     ret = {}
  22.     for i in m:
  23.         sum = 0
  24.         count = len(m[i])
  25.         for each in m[i]:
  26.             if each[-4] == 'N/A':
  27.                 count -= 1
  28.                 continue
  29.             sum += int(each[-4])
  30.         average = sum/count
  31.         ret.setdefault(i,average)
  32.     return ret

  33. # """调用上述定义的三个函数"""
  34. data_list = load_date('beijing.txt')
  35. data_dict = mapper(data_list)
  36. calc_data = reduce(data_dict)
  37. for i in calc_data:
  38.     print('{} {:.2f}'.format(i,calc_data[i]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 00:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表