使用字典和列表型变量完成村长选举。某村有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))