鱼C论坛

 找回密码
 立即注册
查看: 905|回复: 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

应该有达到要求吧~
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]))

beijing.zip

36.45 KB, 下载次数: 2

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-17 14:04:28 | 显示全部楼层
赤果果的求代码    期待大神回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[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]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 16:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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