|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
"""调用上述定义的三个函数"""
"""此处填写编码"""
应该有达到要求吧~
- 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[0][:6] in m:
- m[i[0][:6]].append(tuple(i[1:]))
- continue
- m.setdefault(i[0][:6],[tuple(i[1:])])
- return m
- def reduce(m: map) -> map:
- """计算并返回月的平均温度,以字典形式返回(key为月份,value为平均温度)"""
- ret = {}
- for i in m:
- sum = 0
- count = len(m[i])
- for each in m[i]:
- 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[i]))
复制代码
|
|