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

Python中使用bool作为字典键的异常行为问题

为什么Python 2.7中重复键的字典遍历只显示一个键?

这问题问到点子上了!核心原因其实是Python字典的键唯一性特性,咱们一步步拆解来看:

本质:字典不允许重复键,重复会被覆盖

Python字典的底层是哈希表结构,它要求所有键必须是唯一且可哈希的。当你创建字典时如果出现重复的键,后面的键值对会直接覆盖前面的条目,最终字典里只会保留最后那个重复键对应的内容。

第一个例子的真相

你写的第一个字典:{True:'a', True:'b'},在创建的瞬间就发生了覆盖——第二个True键直接替换了第一个,所以这个字典最终实际是 {True: 'b'}。遍历这个字典时,自然只会输出一个True。

第二个例子的对比

第二个字典{False:'a', True:'b'}里的False和True是两个不同的键(在Python里True等价于整数1,False等价于整数0,二者哈希值不同),所以不会发生覆盖,字典里完整保留了两个键值对,遍历的时候就会依次输出False和True。

直观验证一下?

你可以直接打印字典看看实际内容:

>>> print({True:'a', True:'b'})
{True: 'b'}
>>> print({False:'a', True:'b'})
{False: 'a', True: 'b'}

这样就能一眼看到重复键被覆盖后的结果啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:22:28