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

寻求简化数组元素计数程序的替代方案(非.count()方法)

简化数组数字出现次数统计的代码优化

原代码存在两个核心问题:一是重复的计数判断逻辑冗余,二是条件判断和流程控制存在逻辑错误(比如check[0]!=check[1]!=check[2]无法正确识别两同一异的情况,且每个count判断后直接break会导致后续检查无法执行)。

可以用collections.Counter来一次性统计所有数字的出现次数,大幅简化逻辑:

from collections import Counter

counts = Counter(check)
if len(counts) == 1:
    # 三个数字全相同
    print('jackpot!')
    money += 100
elif 2 in counts.values():
    # 存在数字出现两次
    print('you\'ve won £50')
    money += 50
else:
    # 三个数字全不同
    print('youve lost')
    break

优化点说明:

  • Counter统计:一次性统计数组中所有数字的出现次数,避免多次调用.count()的冗余操作;
  • 逻辑修正:
    • 用len(counts) ==1准确判断三个数字完全相同的情况;
    • 用2 in counts.values()直接检查是否有数字出现两次,覆盖所有两同一异的场景;
    • 流程更清晰,避免原代码中break导致的逻辑中断问题。

如果不想导入模块,也可以用字典手动统计,逻辑一致:

counts = {}
for num in check:
    counts[num] = counts.get(num, 0) + 1

# 后续判断逻辑和上面一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:45:39