首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多
admin
2021-03-17
68
问题
使用字典和列表型变量完成村主任的选举。某村有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://kaotiyun.com/show/oi6p777K
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
打开考生文件夹下的spmt_project项目,项目中有一个名为sport_form的表单文件,表单中包括3个命令按钮。请完成如下操作:(1)编写并运行程序Four.prg。程序功能是:根据“国家”和“获奖牌情况”两个表统计并生成一个新表“假奖牌榜”,
在考生文件夹下完成如下简单应用:1.打开“课程管理”数据库,使用SQL语句建立一个视图salary,该视图包括系号和平均工资两个字段,并且按平均工资降序排列。将该SQL语句存储在four.prg文件中。2.打开考生文件夹下的表单SIX,如下图所示,“登
数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()。
以下数据结构中,属于非线性数据结构的是()。
查询“仓库”表的所有记录并存储于临时表文件temp中的SQL语句是()。
关于内存变量的调用,下列说法错误的是()。
项目管理器的“数据”选项卡用于显示和管理()。
考生文件夹下的gnht.dbf是一个合同管理表文件,其中部分字段的含义是:hth(合同号)、dhdw(订货单位)、ghdw(供货单位)、jhsl(订货数量)。编写程序progzh,prg分别统计订货单位数、供货单位数、订货总数,并将结果填写到jleg
使用报表设计器建立一个报表,具体要求如下:①报表的内容(细节带区)是orderl—list表的订单号、订购日期和总金额。②增加数据分组,分组表达式是“order—list.客广号”•组标头带区的内容是“客户号”。组注脚带区的内容是该组订单的
下列关于线性链表的描述中,正确的是()。Ⅰ、只含有一个指针域来存放下一个元素地址Ⅱ、指针域中的指针用于指向该结点的前一个或后一个结点(即前件或后件)Ⅲ、结点由两部分组成:数据域和指针域。
随机试题
石膏的性味是
根据我国宪法和有关法律的规定,下列有关全国人民代表大会专门委员会的表述哪一项是正确的?
路面施工场界噪声限值为昼间70dB,夜间( )dB。当敏感区域噪声不能达标时,应采用控制作业时间等措施,保证居民的夜间休息不受打扰。
根据财政部《关于进一步加强中央基本建设项目竣工财务决算工作通知》(财办建[2008]91号),对于先审核后审批的建设项目,建设单位应在项目竣工后()内完成竣工财务决算编制工作。【2010年真题】
人工摊铺沥青混合料应做到()。
过境货物自入境时起至出境时止属于海关监管货物,未经海关许可不得开拆、提取、交付、发送、调换、转让、更换标记或是移作他用,但允许在海关监管下在边境换装运输工具。()
厚重的历史文化遗产不是城市建设、城市发展的包袱,而是精神理念的载体,容易凝聚成为现代建设最大的财富。开发人的内在动力,产生文化效应,大幅度提高市民素质,各种文化形态随之融汇渗透、辐射四方。这段话支持了这样一种观点,即()。
若有定义语句"doublea=2/3;”,则输出a的结果是()。
TheplaywrightDavidHenryHwanghasbeeninhighdemandinrecentyears—notforworkslikehisTonyAward-winningM.Butterfly,
PeopleintheUScannowcarryanartificialintelligence(AT)aroundintheirpocket,whereitwaitspatientlytobetoldwhat
最新回复
(
0
)