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

如何基于全部可选选项计算投票选择的出现占比?

解决投票选项占比统计缺失未选选项的问题

直接用以下方式实现,既能保证所有预设选项都出现在结果中,又无需多次遍历用户输入:

from collections import Counter

def find_occurency_percentage(user_inputs, choices):
    total_votes = len(user_inputs)
    # 初始化所有预设选项的占比为0.0
    result = {choice: 0.0 for choice in choices}
    
    if total_votes == 0:
        return result
    
    # 仅遍历一次用户输入统计各选项出现次数
    vote_counts = Counter(user_inputs)
    
    # 计算有投票记录的选项占比并更新结果
    for option, count in vote_counts.items():
        result[option] = round((count / total_votes) * 100, 2)
    
    return result

代码说明

  1. 初始化结果字典:通过字典推导式一次性创建包含所有预设选项的字典,默认值设为0.0,确保未被选择的选项也会出现在结果中。
  2. 边界处理:如果没有用户输入(总票数为0),直接返回全0的结果字典。
  3. 高效统计:用Counter仅遍历一次用户输入,统计各选项的出现次数,避免重复遍历输入数据。
  4. 计算占比:遍历统计得到的结果,计算对应选项的占比并更新到初始字典中,未被统计到的选项保持0.0不变。

测试示例

当用户输入为['Agree', 'Disagree', 'Agree', 'Disagree', 'Agree', 'Agree'],预设选项为['Agree', 'Disagree', 'Leave Blank']时,调用函数会返回:

{'Agree': 66.67, 'Disagree': 33.33, 'Leave Blank': 0.0}

内容的提问来源于stack exchange,提问作者Iqra Moazzama

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:57:26