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

Python字典统计元素频率异常:为何无法正确累加字符计数?

问题排查:字符计数无法累加的原因

核心问题出在赋值运算符的写法上:你代码里的=+ 1是错误的,这不是累加操作,而是把对应键的值直接设置为1(=+等价于= 1),所以每次循环都会覆盖之前的计数,最终每个字符的计数都只能是1。

正确的累加操作应该用+= 1,这个运算符会先获取当前键已有的值,加上1后再重新赋值给该键。另外补充一个细节:如果键是第一次出现,直接用+= 1会报错(因为键不存在,无法获取值),所以更稳妥的写法是用字典的get方法,默认值设为0,确保首次出现的字符也能正确计数。

修正后的完整代码如下:

def isAnagram(s, t):
    if len(s)!= len(t):
        return False 
    d_1 = {}
    d_2 = {}
    for i in range(len(s)):
        d_1[s[i]] = d_1.get(s[i], 0) + 1
        d_2[t[i]] = d_2.get(t[i], 0) + 1
    print(d_1)
    print(d_2)
    return d_1 == d_2  

s = 'aabb'
t = 'bbaa'
print(isAnagram(s,t))

运行后输出:

{'a': 2, 'b': 2}
{'b': 2, 'a': 2}
True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:40:26