投票计数python

该博客介绍了一个使用Python处理投票计数的问题。首先创建一个字典存储候选人,然后遍历投票,有效投票增加对应候选人计数,无效投票单独记录。最后按照输入顺序输出候选人及其得票数。另外,提到了使用count()函数作为另一种计数方法。

题目描述:入候选人的人数,第二行输入候选人的名字,第三行输入投票人的人数,第四行输入投票。
输出描述:
每行输出候选人的名字和得票数量。
例如:
输入

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值