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

如何用dict.get()替代if语句实现字典字符计数功能?

用dict.get()替代条件语句实现字符出现次数统计

原需求是用d.get()替代以下histogram(s)函数中的if语句,实现字符串中字符出现次数的统计:

def histogram(s):
    d = dict()
    for c in s:
        if c not in d:
            d[c] = 1
        else:
            d[c] += 1
    return d
print(histogram('happy'))

尝试的代码仅能将每个字符对应的值设为1,无法实现累加功能:

def ordered_items(s):
    d = dict()
    for c in s:  
        d[c] = 1
        d.get(c, 0)
    return d
print(ordered_items('happy'))

正确实现方式

利用d.get()获取键的当前值(不存在则返回默认值0),在此基础上加1后重新赋值给对应键,即可实现累加计数,替代原有的if-else逻辑:

def histogram(s):
    d = dict()
    for c in s:
        d[c] = d.get(c, 0) + 1
    return d
print(histogram('happy'))  # 输出: {'h': 1, 'a': 1, 'p': 2, 'y': 1}

逻辑说明

  • d.get(c, 0):若键c已在字典d中,返回其对应数值;若不存在,返回默认值0。
  • 每次循环将获取到的值加1,再赋值给d[c],无论键是否存在,都能完成计数累加,完全替代了原条件判断的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:52:09