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

Python字典中True作为键访问返回值不符合预期问题问询

现象原因说明
  • Python 中bool是int的子类,True本质对应的整数值就是1,因此True == 1的判定结果为True,且二者的哈希值完全相等。
  • Python 字典判断键是否重复的规则是:两个对象哈希值相等,且==比较返回True,就会被认定为同一个键。
  • 你定义字典时先写了True:'Visa',后续又写了1:'Married',后者属于重复键赋值,会直接覆盖前者的值,最终字典里该键对应的值就是Married。
  • 因此不管用True还是1作为键取字典值,拿到的都是覆盖后的结果。
# 可自行验证相关特性
print(hash(True), hash(1)) # 二者哈希值完全一致
print(True == 1) # 比较结果为True
print(mydict) # 输出仅3个键,不会同时存在True和1两个独立键

内容的提问来源于stack exchange,提问作者AMIR HAMZA SHAIKH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:24:05