题目描述:入候选人的人数,第二行输入候选人的名字,第三行输入投票人的人数,第四行输入投票。
输出描述:
每行输出候选人的名字和得票数量。
例如:
输入
4
A B C D
8
A B C D E F G H
输出
A : 1
B : 1
C : 1
D : 1
Invalid : 4
先做一个字典,放可以投票的人,然后遍历投票,如果有效就字典中的数+1,无效给count加一,最后输出字典里的内容,和无效的。
这里的坑是最后要按顺序输出。dict是乱序的,所以循环使用了输入的name,
注意括号和空格。
while True:
try:
num = int(input())
name = input().split()
t_num = int(input())
tou = input().split()
dict1 = {}
count = 0
for i in name:
dict1[i] = 0
count = 0
for j in tou:
if j in dict1:
dict1[j] += 1
else:
count += 1
for k in name:
print("%s : %s" % (k, dict1[k]))
print("Invalid : " + str(count))
except:
break
另一种方法,使用count()计数:
while True:
try:
num = int(input())
name = input().split()
t_num = int(input())
tou = input().split()
youxiao = 0
for i in name:
if i in tou:
print(i +" : "+ str(tou.count(i)))
youxiao += tou.count(i)
else:
print(i + " : " + str(tou.count(i)))
print('Invalid : ' + str(t_num - youxiao))
except:
break
该博客介绍了一个使用Python处理投票计数的问题。首先创建一个字典存储候选人,然后遍历投票,有效投票增加对应候选人计数,无效投票单独记录。最后按照输入顺序输出候选人及其得票数。另外,提到了使用count()函数作为另一种计数方法。
1265

被折叠的 条评论
为什么被折叠?



