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

如何使用Python reduce函数统计字符串中指定字符的出现次数?

使用reduce统计字符串中指定字符的出现次数

嘿,这问题我之前琢磨过,用reduce确实能实现!刚好借你的例子来一步步说清楚~

首先,reduce的核心就是累积操作:它会把一个函数依次应用到序列的每个元素上,每次都把上一次的结果作为下一次的输入,最后返回单个值——这正好符合你统计次数的需求,因为我们需要一步步累加目标字符出现的次数。

具体实现代码

from functools import reduce

def count_target_char(input_str, target):
    # 用reduce做累积统计:初始累加器是0,每遇到目标字符就+1
    return reduce(lambda acc, current_char: acc + 1 if current_char == target else acc, input_str, 0)

# 测试你的示例
test_str = 'assntcs'
target_char = 's'
print(count_target_char(test_str, target_char))  # 输出:3

代码解释

  • 我们给reduce传了三个参数:
    1. 一个lambda函数:第一个参数acc是累加器(保存之前统计的总次数),第二个参数current_char是当前遍历到的字符串字符。如果当前字符等于目标字符,就把累加器加1,否则保持累加器不变。
    2. 要遍历的输入字符串input_str。
    3. 累加器的初始值0(因为一开始统计次数是0)。

额外小提示

其实Python里字符串本身就有count()方法,直接写test_str.count(target_char)也能得到3,代码更简洁。但既然你是在学习reduce的用法,这个实现刚好能帮你理解它的累积逻辑,非常适合练手~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:27:40