首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多
admin
2021-03-17
90
问题
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多的村民当选。
问题1:请从“vote.txt”中筛选出无效票写入文件“vote1.txt”。有效票的含义如下:选票中只有一个名字且该名字在“name.txt”文件列表中,不是有效票的票称为无效票。
问题2:给出当选村主任的村民的名字及其得票数。
在考生文件夹下给出了程序框架文件“PY202.py”,补充代码完成程序。
试题程序:
请在________处使用一行代码或表达式替换
#注意:请不要修改其他已给出的代码
f=open("name.txt")
names=f.readlines()
f.close()
f=open("vote.txt")
votes=f.readlines()
f.close()
f=open("vote1.txt","w")
D={}
NUM=0
for vote in________(1)________:
num=len(vote.split())
if num==1 and vote in________(2)________:
D[vote[:-1]]=________(3)________+1
NUM+=1
else:
f.write(________(4)________)
f.close()
l=1ist(D.items())
l.sort(key=lambda s:s[1],________(5)________)
name=________(6)________
score=________(7)________
print("有效票数为:{}当选村主任的村民为:{},票数为:{}".format(NUM,name,score))
选项
答案
f=open("name.txt") names=f.readlines() f.close() f=open("vote.txt") votes=f.readlines() f.close() f=open("vote1.txt","w") D={} NUM=0 for vote in votes: num=len(vote.split()) if num==1 and vote in names: D[vote[:-1]]=D.get(vote[:-1],0)+1 NUM+=1 else: f.write(vote) f.close() l=list(D.items()) l.sort(key=lambda s:s[1],reverse=Ture) name=l[0][0] score=l[0][1] print("有效票数为:{}当选村主任的村民为:{},票数为:{}".format(NUM,name,score))
解析
“name.txt”文件中每行为一个村民的姓名,用readlines()函数读入所有行,以每行为元素形成列表names;“vote.txt”文件中每行为一张选票信息,用readlines()函数读入所有行,以每行为元素形成列表votes。用for循环遍历votes列表中的每个元素,并使用if进行判断。若该元素中只有一个姓名(即vote的长度为1)且该姓名也在列表names中,则为有效票,否则为无效票(将vote写入“vote1.txt”文件)。因此,第1空填入votes;第2空填入names;第4空填入vote。
若判断为有效票,就将NUM加1,统计出有效票数量。并将该元素作为字典D中的一个键,该键所对应的值为1。在后面循环中只要遍历的元素和键相同,就将该键对应的值加1。因此,第3空填入D.get(vote[:-1],0)。
l=list(D.items())表示将字典类型变成列表类型,字典中的每个键值对对应列表中的一个元组。随后,用sort()方法对列表l的元素进行排序,在参数key=lambda s:s[1]中lambda是一个隐函数,是固定写法;s表示列表中的一个元素,在这里表示一个元组,s只是临时起的一个名字,也可以使用任意的名字;s[1]表示以元组中第二个元素排序。sort()方法的第二参数表示按哪种方式排序,若为revers=True表示按降序排序;若该参数缺省或reverse=False,表示按升序排序。这里按降序排序,因此第5空填入reverse=True。
排序后,列表1中第一个元素(一个元组)中即为当选村主任的村民的姓名和选票数,name=1[0][0]表示当选村主任的村民的姓名,score=l[0][1]表示选票数。因此第6空填入l[0][0],第7空填入l[0][1]。
转载请注明原文地址:https://www.kaotiyun.com/show/oi6p777K
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
1.在考生文件夹下打开数据库文件“大学管理”,为其中的“课程表”和“教师表”分别建立主索引和普通索引,字段名和索引名均为“课程号”。2.打开one.prg文件,修改其中的一处错误,使程序执行的结果是在屏幕上显示:5
在考生文件夹下完成下列操作。(1)在TheatDB数据库中新建一个名为“好评”的视图,视图的功能是查询2013年7月1日以后(不含)观看的“影评”为“好”的评价数最多的前10名的电影信息;查询结果包含电影编号、电影名、类型和评价数;各记录按照评价数降序排
假设temp.dbf数据表中有两个字段“歌手号”和“最后得分”,下面程序段的功能是:将temp.dbf中歌手的“最后得分”填入“歌手”,表对应歌手的“最后得分”字段中(假设已增加了该字段),在下划线处应填写的SOL语句是()。USE歌手DO
在VisualFoxPro的工作1区和3区打开了数据表文件,再接着执行SELECT0后,选择工作区的结果是()。
用程序计算一个整数的各位数字的乘积,在下划线处应填写的语句是()。INPUT“NUM=”TOnumcj=1DOWHlLEnum!=0cj=cj*MOD(num,10)ENDDO?cj
要控制两个表中数据的完整性和一致性可以设置“参照完整性”,要求这两个表()。
下面关于算法的叙述中,正确的是()。
(1)打开考生文件夹下的数据库SPORT,首先永久删除该数据库中的temp表,然后将“金牌榜”、“获奖牌情况”和“国家”3个自由表加入该数据库中。(2)在表设计器中,为表“金牌榜”建立一个普通索引,索引名和索引表达式均为“金牌数”。(3
在VisualFoxPro中修改数据库、表单和报表等组件的可视化工具是
随机试题
法律规定,逮捕()批准。
酶有非竞争性抑制剂存在时()。
A.新鲜冰冻血浆B.冷沉淀凝血因子C.单采新鲜冰冻血浆D.单采少白细胞血小板E.单采粒细胞容量为150~500ml的是
玉液汤的适应证是增液汤的适应证是
年应税销售额未超过标准的,从事货物生产或提供应税劳务的小规模企业和企业性单位,如果账簿健全、能准确核算并提供销项税额、进项税额,能按规定报送有关税务资料,并且年销售额在()以上,经企业申请,税务机关可认定其为一般纳税人。
由镶金的不锈钢表壳制成的自动上弦机械手表
习近平总书记指出:“生活在我们伟大的祖国和伟大时代的中国人民,共同享有人生出彩的机会,共同享有梦想成真的机会,共同享有同祖国和时代一起成长与进步的机会。”这说明()。
张某与王某签订了一份借款合同,张某为借款人,王某为出借人,借款数额为500万元,借款期限为两年。A机构、B机构为该借款合同进行保证担保,担保条款约定,如张某不能如期还款,A机构、B机构承担保证责任。同时,李某对张某与王某的借款合同进行了抵押担保,担保物为一
A、 B、 C、 D、 C图形中线条之间的交点数都是9,选项中只有图形C符合这一特征。
FoodanddrinkplayamajorroleinChristmascelebrationsinmostcountries,butinfewmoresothaninMexico.Manyfamilies
最新回复
(
0
)