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

为什么Python的Set集合中存储的True输出时没有显示?

问题原因

  • Python的布尔类型bool是整数类型int的子类,True的底层整数值为1,False的底层整数值为0,因此True == 1的运算结果为True,且两者的哈希值hash(True)和hash(1)完全相等。
  • Python集合的去重规则为:若两个元素的哈希值相等,且用==比较返回True,就会被判定为同一个元素,仅会保留集合中先被写入的那一个。

你给出的代码中,集合初始化时1的写入顺序早于True,当解析到True时会被判定为和已存在的1重复,因此被自动剔除,不会出现在最终输出结果中。

你可以调整元素写入顺序验证规则:如果把True放到1前面,代码如下:

mySet = {True,"2",3.0,1}
print("Set: " , mySet)

此时输出结果为 Set: {True, 3.0, '2'},反过来是1被去重。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:15:02