首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件name.txt给出,从这40名村民中选出一人当村长,40人的投票信息由考生文件夹下文件vote.txt给出,每行是一张选票的信息,有效票中得票最多的村民当选。
使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件name.txt给出,从这40名村民中选出一人当村长,40人的投票信息由考生文件夹下文件vote.txt给出,每行是一张选票的信息,有效票中得票最多的村民当选。
admin
2020-04-10
32
问题
使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单由考生文件夹下文件name.txt给出,从这40名村民中选出一人当村长,40人的投票信息由考生文件夹下文件vote.txt给出,每行是一张选票的信息,有效票中得票最多的村民当选。
问题1:请从vote.txt中筛选出无效票写入文件votel.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(”votel.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()
1=list(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(”votel.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=True) 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写入到””votel.txt”文件中)。因此,第一空填入:votes;第二空填入:names;第四空填入:vote。
若判断为有效票,就将NUM加1,统计出有效票数量;并将该元素作为字典D中的一个键,该键所对应的值为1,在后面循环中只要遍历的元素和键相同,就将该键对应的值加1。因此,第三空填入:D.get(vote[:一1],0)。
l=list(D.items())表示将字典类型变成列表类型,字典中的每个键值对对应列表中的一个元组。随后,对列表l中的元素进行排序,用到sort()方法,参数”key=lambda s:s[1]”中lambda是一个隐函数,是固定写法,不能写成别的单词;s表示列表中的一个元素,在这里表示一个元组,s只是临时起的一个名字,也可以使用任意的名字;s[1]表示以元组中第二个元素排序。sort()方法的第二参数表示是按哪种方式排序,若为”reverse=True”表示按降序排序;若该参数缺省或”reverse=False”,表示按升序排序。这里我们按降序排序,因此第五空填入:reverse=True。
排序后,列表l中第一个元素(一个元组)中即为当选村长姓名和选票数,name=l[0][0]表示当选村长姓名,score=l[0][1]表示选票数。
转载请注明原文地址:https://kaotiyun.com/show/mf6p777K
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
设有关系歌手(歌手号,姓名,最后得分)和关系评分(歌手号,分数,评委号),每个歌手的最后得分是所有评委给出的分数的平均值,则计算歌手“最后得分”的SQL语句是()。
在视图设计器中有,而在查询设计器中没有的选项卡是()。
在考生文件夹下完成如下简单应用:(1)建立一个名为NEW-VIEW的视图,该视图含有选修了课程但没有参加考试(成绩字段值为NULL)的学生信息(包括“学号”、“姓名”和“系部”3个字段)。(2)建立表单MYFORM3,在表单上添加一个表
设教师表保存的是教师信息,教师表的表结构为(教师编号,姓名,职称),图书出版表保存的是教师出版图书的情况,图书出版表的表结构为(ISBN号,教师编号,图书名,出版社,出版年份)。如果希望查询从来没有出版过图书的教师编号和姓名,正确的SQL语句是()
在满足实体完整性约束的条件下()。
可以用DO命令执行的文件类型包括()。
在考生文件夹下完成下列操作。(1)在TheatDB数据库中新建一个名为“好评”的视图,视图的功能是查询2013年7月1日以后(不含)观看的“影评”为“好”的评价数最多的前10名的电影信息;查询结果包含电影编号、电影名、类型和评价数;各记录按照评价
设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为
下列排序方法中,最坏情况下比较次数最少的是
以下选项中不是Python语言的保留字的是
随机试题
根据《劳动合同法》,用人单位在招用劳动者以及订立劳动合同时,不得()。
9岁的小芹患上了影响正常呼吸的神经炎症,严重时需要呼吸机帮助其呼吸,目前入住医院的重症监护室,在一段时间内父母不能探望。据医护人员反映,小芹以为父母不要她了,不配合治疗。于是,小芹父母向社会工作者求助。下列做法中,对小芹来说最合适的是(
中国共产党独立领导革命战争和创建人民军队的开端是
信用风险监测是一个动态、连续的过程。
商品经济的基本特征()。
下列选项中,属于规范性法律文件的是()(2010年一综一第2题)
abissextileyear
在关系数据库标准语言SQL中,实现数据检索的语句是()。
KingTech:GREATCHANCEFORGROWTHWITHEXCITINGDOWNTOWNCOMPANYThecountry’stopdevelopmentagencylocatedinthecenterof
A、Ataboutnoon.B、Lateinthe’afternoon.C、Earlyinthemorning.D、Atdawn.A短文中提到“preparingthetraysforlunch”,为午餐准备盘子,据此推断
最新回复
(
0
)