python 投票计数器全班50人3个候选人_Python程序为STV投票系统,为每个人加上所有的第一偏好票...

首先,我有一个文本文件,显示了5名候选人在以下4次投票中的投票分数:

1,2,3,0,0

2,3,1,0,0

3,1,0,0,2

0,2,0,3,1

投票者把他们的前三个偏好和剩下的两个候选人得到零。在

使用下面的程序,每个候选人的每个分数被放入一个二维数组中,并计算配额。在with open("textdata.txt","r") as f:

ReadTextFile = f.read()

RawVotesArray = ReadTextFile.split("\n")

TwoDArrayRows = [item for item in RawVotesArray if item != ""]

TwoDArrayRows = [item.split(",") for item in TwoDArrayRows]

print(TwoDArrayRows)

CandidateA = [row[0] for row in TwoDArrayRows]

Preference1CA = CandidateA.count("1")

CandidateB = [row[1] for row in TwoDArrayRows]

Preference1CB = CandidateB.count("1")

CandidateC = [row[2] for row in TwoDArrayRows]

Preference1CC = CandidateC.count("1")

CandidateD = [row[3] for row in TwoDArrayRows]

Preference1CD = CandidateD.count("1")

CandidateE = [row[4] for row in TwoDArrayRows]

Preference1CE = CandidateE.count("1")

ValidVotes = 4

NumberOfSeats = 2

quota = int((ValidVotes/(NumberOfSeats + 1))+1)

print(quota)

其输出为:

[['1','2','3','0','0',['2','3','1','0','0',['3','1','0','2',['0','2','0','3','1']]

最后的2是配额。候选人要想获胜,他们的第一优先票(1票)必须达到或超过2票的配额。我不知道如何编写一个函数,以便将每个候选人的第一优先票相加。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值