
本文介绍如何在循环中统计满足特定条件的数值个数,而非仅打印结果;通过引入计数器变量并累加匹配次数,最终输出总数,适用于各类枚举与筛选场景。
本文介绍如何在循环中统计满足特定条件的数值个数,而非仅打印结果;通过引入计数器变量并累加匹配次数,最终输出总数,适用于各类枚举与筛选场景。
在编写循环筛选逻辑时,我们常使用 print() 直接输出所有符合条件的结果(如三位数中满足某数字组合规则的数),但有时真正需要的是匹配项的总数——例如本例中找出所有使 ft + sd == '1216' 成立的三位数,并返回个数 6,而非逐行打印 397, 488, …。
实现的关键在于:用一个整型变量(如 counter)初始化为 0,每次条件成立时执行 counter += 1,循环结束后统一输出该变量值。这种方式避免了额外的数据结构开销,简洁高效。
以下是优化后的完整代码:
counter = 0
for i in range(100, 1000):
s = str(i)
k1 = int(s[0]) + int(s[1])
k2 = int(s[1]) + int(s[2])
sd = str(max(k1, k2))
ft = str(min(k1, k2))
s1 = ft + sd
if s1 == '1216':
counter += 1
print(counter) # 输出:6
✅ 注意事项:
- 计数器必须在循环外部初始化(否则每次迭代都会重置为 0);
- += 1 必须放在 if 条件块内,确保仅对有效匹配计数;
- 若后续还需保留具体数值(如同时要个数和列表),可改用 results = [] 配合 results.append(i),最后用 len(results) 获取数量;
- 此方法时间复杂度仍为 O(n),无性能损失,是 Python 中统计频次的标准实践。
掌握这一模式,能让你快速将“调试式输出”升级为“生产级统计”,大幅提升代码的实用性与可维护性。











