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

Python字典技术疑问:空字典键存在判断与值自增逻辑解惑

Python字典代码疑问解答

代码示例

logs = 'rwgojnerjblebwegijerjgnoeabgjnawprijgeqwpowepfiwejgpnegparsgb'
logs_count = {}
for char in logs:
    if char == 'j':
        if char in logs_count:
            logs_count[char] += 1
        else:
            logs_count[char] = 1

print(logs_count)

问题解答

  1. 当logs_count为空字典时,if char in logs_count为何能判定为True?
    这是对代码执行流程的误解:当logs_count为空字典时,第一次遍历到字符'j',char in logs_count的结果是False,此时会进入else分支,将logs_count['j']赋值为1。只有后续再次遇到'j'时,'j'已经存在于字典的键中,char in logs_count才会返回True,执行加1操作。

  2. 若未给char键赋值,logs_count[char] += 1如何实现加1操作?
    这段代码的逻辑已经避免了“未赋值就执行加1”的情况:只有当char已经是字典的键时,才会执行logs_count[char] +=1;如果char不在字典里,会先通过else分支给该键赋值为1,后续再遇到相同字符时才会触发加1。
    若真的在未赋值时强行执行logs_count[char] +=1,Python会直接抛出KeyError,因为字典中不存在对应键,无法完成数值运算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:07:42