使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单有考生文件夹下文
件name.xt给出,从这40名村民中选出一人当村长,40人的投票信息由考生文件夹下文件vote.txt给出,每行是
一张选票的信息,有效票中得票最多的村民当选。
问题1:请从vote.xt中筛选出无效票写入文件vote1.txt。有效票的含义是:选票中只有一-个名字且该名字
在name1.txt文件列表中,不是有效票的票称为无效票。
问题2:给出当选村长的名字及其得票数。在考生文件夹下给出了程序框架文件PY202.py,补充代码完成
程序。
参考答案
f=open("name.txt")
names=f.readlines()
f.close()
f=open("vote.txt")
votes=f.readlines()#['冷兴鑫\n', '冯萌 冷兴鑫\n']
f.close()
f=open("vote1.txt","w")
D={}#{'冷兴鑫':12}
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()
#[('冷兴鑫',12),()]
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))



