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

Python如何在函数中结合count方法与for循环计算多值占比

代码修改方案

原有代码错误原因

  • 你之前定义的Lvl是单个整数10,整数不属于可迭代对象,直接作为for循环的遍历对象会抛出类型错误
  • 循环逻辑错误:你已经把目标数值范围存到了变量x中,实际应该遍历该数值范围而非Lvl变量

正确实现代码

方案1:复用已写好的percent_score函数计算总占比

def percent_score(Scores,Level):
    find = Scores.count(Level)
    perc = find/len(Scores)
    return perc

Prac_1 = [9,10,5,14,7,18,10,10,10,9,11]
target_lvls = range(9, 12)
total_perc = 0

# 遍历所有目标数值累加占比
for lvl in target_lvls:
    total_perc += percent_score(Prac_1, lvl)

print(f"9、10、11三个数值的总占比为:{total_perc}")

方案2:直接在循环中累加计数后计算占比

不需要重复调用函数,执行效率更高:

Prac_1 = [9,10,5,14,7,18,10,10,10,9,11]
target_lvls = range(9, 12)
total_count = 0
total_len = len(Prac_1)

for lvl in target_lvls:
    total_count += Prac_1.count(lvl)

total_perc = total_count / total_len
print(f"9、10、11三个数值的总占比为:{total_perc}")

补充:单独查看每个目标数值的占比

如果需要分别输出9、10、11各自的占比,可以用以下写法:

Prac_1 = [9,10,5,14,7,18,10,10,10,9,11]
target_lvls = range(9, 12)

for lvl in target_lvls:
    perc = percent_score(Prac_1, lvl)
    print(f"数值{lvl}的占比为:{perc}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:00:05