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

关于Python集合中len()计算元素数量的结果疑问

集合长度不符合预期的原因解析

你的代码:

set2={1,2,3,'a','b','c',True,False,False}
print('Set:',set2, "Length:",len(set2))

实际输出:

Set: {False, 1, 2, 3, 'a', 'b', 'c'} Length: 7

问题出在Python布尔值与整数的底层关联上:

  • Python里bool是int的子类,True等价于1,False等价于0——True == 1和False == 0的结果都是True,且两者的哈希值完全相同。
  • 集合的去重逻辑是:只要两个元素哈希值相同,且用==比较为真,就会被视为同一个元素,仅保留一个。

对应到你的代码中:

  • True和1被判定为重复元素,集合只保留其一(具体保留哪个由内部哈希机制决定,不影响总数)
  • 两个False是完全重复的,自然被合并成一个
  • 剩余的2、3、'a'、'b'、'c'都是唯一元素

加起来正好是7个元素,所以输出的长度为7。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:10:20