跳转到主要内容

STV投票方法

项目描述

https://travis-ci.org/VoteIT/STVPoll.svg?branch=master

执行STV投票计算的库。该软件包是在VoteIT项目的一部分创建的,专门用于处理难以用Markus Schulze的STV方法计算的较大选举。

典型用法是初选或从众多候选人中选出许多胜者的选举。结果将是比例的。

完全支持

  • 苏格兰STV

  • 即时决选投票(IRV)

大部分功能正常

  • CPO STV(如果结果太多则不会优雅地失败)

示例

案例来源:https://en.wikipedia.org/wiki/Single_transferable_vote

from stvpoll.scottish_stv import ScottishSTV

example_ballots = (
    (['orange'], 4),
    (['pear', 'orange'], 2),
    (['chocolate', 'strawberry'], 8),
    (['chocolate', 'bonbon'], 4),
    (['strawberry'], 1),
    (['bonbon'], 1),
)

poll = ScottishSTV(seats=3, candidates=['orange', 'chocolate', 'pear', 'strawberry', 'bonbon'])
for (candidates, count) in example_ballots:
    poll.add_ballot(candidates, count)

result = poll.calculate()

这将返回一个包含结果和一些有用元数据的ElectionResult对象。elected属性包含当选候选人。

左边的候选人优先级更高,因此:[‘pear’,‘orange’]表示‘pear’在‘orange’之前等。数字表示这种类型选票的数量。

result.elected_as_tuple()
('chocolate', 'orange', 'strawberry')

代码 & 贡献

您可以在以下位置fork代码:https://github.com/VoteIT/STVPoll

请将任何错误报告到那里,或发送电子邮件至info@voteit.se

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分发

STVPoll-0.4.5.tar.gz (11.5 kB 查看哈希值)

上传时间

构建分发

STVPoll-0.4.5-py3-none-any.whl (17.3 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面