a聪明叶 发表于 2020-6-17 13:52:03

天气平均温度查询!!求大神帮忙看看

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
   
   
"""调用上述定义的三个函数"""
"""此处填写编码"""

wp231957 发表于 2020-6-17 14:04:28

赤果果的求代码    期待大神回复

Twilight6 发表于 2020-6-17 14:35:11


应该有达到要求吧~


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

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

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

# """调用上述定义的三个函数"""
data_list = load_date('beijing.txt')
data_dict = mapper(data_list)
calc_data = reduce(data_dict)
for i in calc_data:
    print('{} {:.2f}'.format(i,calc_data))
页: [1]
查看完整版本: 天气平均温度查询!!求大神帮忙看看