You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写代码实现关联候选人姓名与票数列表的处理:找出最高得票候选人并处理多人平局需重新投票的情况

实现候选人得票统计与平局处理的Python方案

没问题,我来帮你搞定这个需求!咱们可以用Python轻松实现这个功能,下面是完整的代码示例,我会一步步给你解释逻辑:

# 定义候选人姓名和对应的票数
candidate_names = ['ed','dan','ollie','poppy']
votes = [10,13,8,3]

# 第一步:把候选人和票数配对,方便后续同步处理
paired_data = list(zip(candidate_names, votes))

# 第二步:找出本次投票的最高得票数
max_votes = max(votes)

# 第三步:筛选出所有获得最高票数的候选人
top_candidates = [item for item in paired_data if item[1] == max_votes]

# 第四步:根据最高票人数判断输出结果
if len(top_candidates) == 1:
    winner_name, winner_votes = top_candidates[0]
    print(f"得票最高的候选人是{winner_name},票数为{winner_votes}票")
elif 2 <= len(top_candidates) <= 4:
    # 提取所有平局候选人的姓名,用逗号分隔展示
    tie_names = ", ".join([name for name, _ in top_candidates])
    print(f"出现平局!候选人{tie_names}均获得最高票数{max_votes}票,请重新投票。")

代码逻辑拆解:

  • 配对数据:用zip()函数把姓名列表和票数列表一一对应打包成元组,这样我们可以同时获取每个候选人的姓名和票数,避免单独操作两个列表时出现对应关系错乱的问题。
  • 获取最高票数:直接用max()函数从票数列表里拿到最高值,简单高效。
  • 筛选最高票候选人:用列表推导式遍历配对后的元组,把所有票数等于最高票的候选人筛选出来,得到一个包含所有最高票候选人的列表。
  • 判断输出:
    • 如果最高票候选人只有1位,就直接输出获胜者的姓名和票数;
    • 如果人数在2到4之间(刚好覆盖题目要求的平局范围),就把所有平局候选人列出来,提示重新投票。

测试不同场景:

比如如果把票数改成[13,13,8,3],代码会输出出现平局!候选人ed, dan均获得最高票数13票,请重新投票。;如果票数是[15,15,15,3],也会正确提示三位候选人平局的情况。

内容的提问来源于stack exchange,提问作者Duck.Jpeg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 12:28:15