第1关:统计文档中作者作品数量

该文章已生成可运行项目,

任务描述


本关任务:编写一个能计算文档《中学诗词.txt》中各位作者作品数量的程序。
遍历文档中每一行,提取作者的姓名,将其作为键加入到字典中,字典的值为作品数量。
然后将字典转换为二维列表,按作品数量的降序排列。

相关知识
为了完成本关任务,你需要掌握:1.字典的操作,2.字典转换为列表。

字典的操作
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示
d = {key1 : value1, key2 : value2 }
建立空字典
d={}
向字典添加新内容的方法是增加新的键/值对
d["范仲淹"]=1
则d为{"范仲淹":1}
修改键值对的方法为
d["范仲淹"]=2
则d为{"范仲淹":2}
d["范仲淹"]的值为2

d.get(key,default)键存在则返回相应值,否则返回默认值

字典转换为二维列表
lt = list(d.items())
可将字典转换为二维列表,
二维列表的每项值为列表,列表的第一项为字典的键,第二项为字典的值

编程要求
根据提示,在右侧编辑器补充代码,计算并显示各位作者作品数量。

测试说明
平台会对你编写的代码进行测试:

f1 = open("sy9//中学诗词.txt", "r", encoding = 'utf-8')
#代码开始
lt = {}
for line in f1:
    line=line.split()
    if len(line)>=2 and 2<=len(line[-1])<=4:
        name = line[-1]
        lt[name] =lt.get(name,0)+1
    else:
        continue
lt = list(lt.items())
lt.sort(key = lambda x: x[1], reverse = True)
#代码结束
for i in lt:
  print(i[0],i[1])
f1.close()

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值