题目描述
请实现一个计票统计系统。你会收到很多投票,其中有合法的也有不合法的,请统计每个候选人得票的数量以及不合法的票数。
本题有多组样例输入。
输入描述:
输入候选人的人数n,第二行输入n个候选人的名字(均为大写字母的字符串),第三行输入投票人的人数,第四行输入投票。

输出描述:
按照输入的顺序,每行输出候选人的名字和得票数量,最后一行输出不合法的票数。

示例1
输入
复制
4
A B C D
8
A D E CF A GG A B
输出
复制
A : 3
B : 1
C : 0
D : 1
Invalid : 3

while True:
#多组输入,采用 while True :try :except:break来实现,try中实现其中一组的输出即可
try:
str1=int(input())
#4行输入需要处理格式,分别为整数,去掉空格的字符,整数,去掉空格的字符
str2=input().split()
str3=int(input())
str4=input().split()
str5={}
#字典类型定义,使用字典str5.get(i,default)即取出字典key为i的value,
#如果未找到,则输出default
cuowu=0
for i in range(len(str4)) :
if str4[i] not in str2 :
#判断计票结果不在候选人列表,则错误累计增加1
cuowu=cuowu +1
else :
#如果在候选人列表,则字典中以候选人为key的value增加1,未找到则默认为0
str5[str4[i]]=str5.get(str4[i],0)+1
for j in str2:
print(j,":",str5.get(j,0))
#输出候选人列表,以及返回字典中该候选人的vaule,未找到则默认为0
print("Invalid :",cuowu)
#输出错误统计次数
except:
break