Python练习:字典

题目1

鼠标右键点击这里,弹出菜单中,选择 链接另存为,下载数据文件 0016_1.txt 到本机上。

这个是一个数据文件,格式如下

薛蟠     4560 42
薛蝌     4460 25
薛宝钗   5776 43
薛宝琴   4346 42
王夫人   3360 25
王熙凤   4460 35
王子腾   5660 45
王仁     5034 65
尤二姐   5324 25
贾芹   5663 25
贾蓉     3446 15
贾兰     3443 35
贾芸     4522 25
尤三姐   5905 45
贾珍     4603 25

这里面有3列数据,分别 保存了 游戏系统的用户名, 用户积分 , 年龄

现在要求大家写一个程序,计算出同一姓氏的人的积分总和。

输出结果格式如下:

 : 19142
 : 18514
 : 11229
 : 21677

答案与解析

答案视频讲解


请大家点击此处链接,观看讲解视频


补充练习

VIP小班学员请联系老师获取补充练习,并做阶段学习交流


扫码分享给朋友,一起学更有动力哦



















































题目1-答案

with open('0016_1.txt',encoding='utf8') as f:
    infoList = f.read().splitlines()

coinTable = {}

for info in infoList:
    # 先去除左右空白字符
    info = info.strip()
    if not info:
        continue

    parts = info.split(' ')
    name = parts[0]
    coin = int(parts[-2])


    # 如果姓氏还没有在统计表中
    # 创建新元素
    if name[0] not in coinTable:
        coinTable[name[0]] = coin

    # 如果姓氏已经在统计表中
    # 累加积分
    else:
        coinTable[name[0]] += coin

for name1,coins in coinTable.items():
    print(f'{name1} : {coins}')