为何Python集合输出包含False却不包含True?
Python集合中True未显示但False保留的原因分析
先看代码及执行结果:
myset = {3, 4, 5, 1, 23, 45, 23, 89, "rohit", "raman", "rohit", 4, 5 , True, False, 3j} print(myset) # 输出结果: {False, 1, 3, 4, 5, 3j, 'raman', 45, 23, 89, 'rohit'}
原因在于Python的布尔类型特性:
- Python里的
bool是int的子类,True等价于整数1,False等价于整数0。 - 集合的核心规则是元素不可重复,会自动移除判定为相等的元素。
你的集合里已经存在整数1,当添加True时,因为True == 1的结果为True,集合会认为这两个元素重复,所以只会保留其中一个(输出里显示的是1);而集合里没有整数0,所以False没有重复项,因此被保留了下来。
可以通过以下代码验证这一点:
print(True == 1) # 输出:True print(False == 0) # 输出:True print(isinstance(True, int)) # 输出:True,证明True是int的实例
内容的提问来源于stack exchange,提问作者Dip Kri
相关产品推荐
相关产品推荐

