首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多
admin
2021-03-17
29
问题
使用字典和列表型变量完成村主任的选举。某村有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全国计算机二级
相关试题推荐
下面关于数据环境和数据环境中两个表之间关联的叙述中,正确的是()。
报表的数据源可以是()。
下列程序段执行时在屏幕上显示的结果是()。DIMEA(3,2)FORI=1TO3FORJ=1TO2A(I,J)=I+JNEXTNEXT?A(5)
在考生文件灾下,打开“宾馆”数据库,完成如下操作:(1)打开“客户”表,给“性别”字段增加约束:性别只能为“男”或“女”,默认值为:”女”,表达式为:性别$“男女”。(2)为“入住”表创建一个主索引,主索引的索引名为fkkey,索引表达
(1)打开考生文件夹下的数据库SPORT,首先永久删除该数据库中的temp表,然后将“金牌榜”、“获奖牌情况”和“国家”3个自由表加入该数据库中。(2)在表设计器中,为表“金牌榜”建立一个普通索引,索引名和索引表达式均为“金牌数”。(3
(1)modil.prg程序文件中SQLSELECT语句的功能是查询哪些零件(零件名称)目前用于三个项目,并将结果按升序存入文本文件results.txt。给出的s0LSELECT语句中在第1、3、5行各有一处错误,请改正并运行程序(不可以增、删语句或
下列关于SELECT短语的描述中错误的是
下列函数返回类型为数值型的是
用DIMENSION命令定义数组后,数组各元素的值是
一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的
随机试题
分别解释两种类型的问题和决策。对制定决策时的三种不同条件进行比较。
女,32岁,主诉晨起时枕头上有血迹,牙龈自发性出血及疼痛3天。检查时闻及腐败性口臭。确诊之前,不需做下列哪一口腔检查及辅助检查
成分输血的优点不包括
A.体重低于正常均值5%~10%B.体重低于正常均值10%~15%C.体重低于正常均值15%~25%D.体重低于正常均值25%~40%E.体重低于正常均值40%~60%Ⅰ(轻)度营养不良()
某市甲房地产公司(以下简称甲公司)在报纸上刊登一则售楼广告,广告中宣称“本公司首次独家办销售让利活动,为你提供防盗门、地下车库、屋顶花园”。王某看到广告后,与甲公司签订了购房合同,并交付购房定金5万元,合同约定房价为每平方米建筑面积3000元,2016年2
根据水利工程施工项目招标投标管理规定,评标方法可采用()。
建筑基础验槽必须参加的单位有()。
一般资料:求助者,男性,40岁,已婚,大学文化,公司高级管理人员。案例介绍:求助者非常孝顺母亲,经常带母亲或出钱让母亲去旅游。不料飞机失事,永远地失去了母亲。求助者认为如果不是自己积极张罗为母亲报名、支持母亲出去,母亲就不会死,是自己害死了母亲,
原型化方法最后得到的需求规格说明是()。
I_____totheEnglishCornerlastSaturday,butIfellill.
最新回复
(
0
)