首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多
使用字典和列表型变量完成村主任的选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件“name.txt”给出,从这40名村民中选出一人当村主任,40人的投票信息由考生文件夹下文件“vote.txt”给出,每行是一张选票的信息,有效票中得票最多
admin
2021-03-17
40
问题
使用字典和列表型变量完成村主任的选举。某村有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全国计算机二级
相关试题推荐
1.用SQL语句完成下列操作:检索“田亮”所借图书的书名、作者和价格,结果按价格降序存入book_temp表中。2.在考生文件夹下有一个名为menu_lin的下拉式菜单,请设计一个名为form_menu的顶层表单,将菜单menu_lin加入到该表单中,使
请在考生文件夹下完成下列基本操作题。(1)新建一个名为“影院管理”的项目文件,将数据库TheatDB加入新建的“影院管理”项目中。(2)为“售票统计”表建立主索引,索引名为idx,要求按日期排序,日期相同时按放映厅排序。(3)为“售票统计”表设置有效
在考生文件夹下完成如下简单应用:1.打开“课程管理”数据库,使用SQL语句建立一个视图salary,该视图包括系号和平均工资两个字段,并且按平均工资降序排列。将该SQL语句存储在four.prg文件中。2.打开考生文件夹下的表单SIX,如下图所示,“登
在菜单设计中,可以在定义菜单名称时,为菜单项指定一个访问键。例如,要为“文件”菜单项指定访问键为“F”的菜单名称定义是()。
在三级模式之间引入两层映象,其主要功能之一是()。
在下面的表达式中,运算结果是逻辑假的是()。
下列程序段的输出结果是()。Clearstore10toastore20tobsetudfparmstoreferencedoswapwitha,fB?a.bprocedureswapparametersx
(1)利用快捷菜单设计器创建一个弹出式菜单one,菜单有两个选项:“增加”和“删除”.两个选项之间用分组线分隔。(2)创建一个快速搬表app_report,报表中包含了“评委表”中的所有字段。(3)建立一个数据库文件“大奖赛.dbc”,
在黑盒测试方法中,设计测试用例的主要根据是
下列函数返回类型为数值型的是
随机试题
在数据仓库设计和建设过程中,设计者需要调查用户的决策或数据处理需求,并将功能相近且需要相关联数据支持的需求进行归类,得到不同的需求集合,并在企业数据模型中寻找能够满足各个需求集合的数据集合,然后针对各个数据集合开展数据仓库数据模型的设计。这种设计方法称为【
劳动安全卫生的概念、特征。
患者齿衄,血色鲜红,口渴,鼻干,口干臭秽,烦躁,便秘,舌红,苔黄,脉数,其治宜用何方加减患者吐血鲜红,口苦胁痛,善怒,寐少梦多,烦躁不宁,舌质红绛,脉象弦数,其治宜用何方加减
女性,45岁,头晕乏力1年。实验室检查:RBC2.4×1012/L,Hb60g/L,白细胞4.5×109/L,血小板135×109/L;外周血涂片示红细胞中央淡染区扩大;骨髓检查示红系增生活跃(占50%),铁染色环铁粒幼细胞占20%。该病的铁代谢特点不
初产妇,24岁,38周妊娠临产,LOA,规律宫缩12小时,宫口开大4cm,S=1,未破膜,胎心位于左下腹,双顶径9.3cm,股骨长7.1cm,胎心132次/分,骨盆外测量各径线正常。若随后1小时,宫缩强度减弱20一30秒/次,间隔6—7分钟。产程达13
大黄牡丹汤的功用是()大黄附子汤的功用是()
在深厚砂石层地基上修建砂石坝,需设置地下垂直混凝土防渗墙和坝体堆石棱体排水,下列几种方案中哪一个是合理的?()
设随机变量X服从正态分布N(μ,22),X1,X2,…,X10是来自X的简单随机样本,若P{|X—μ|
Theauthor’spurposeoftellingtheoldjokeinparagraph1istoprove______.Thesentence"Americansareknownforhavingve
Heexplainedalotandtriedto______(使他对于酒的广博知识给我留下深刻印象).
最新回复
(
0
)