Python中Set(HashSet)工作原理及布尔值比较异常问题解析
问题原因解析
- 先看
(True) == True:这里的(True)不是元组,括号仅用于提升优先级,本质就是单个布尔值True,所以等价于True == True,结果自然是True。 - 再看
(True, True) == True, True:Python中逗号的优先级比==低,这个表达式会被自动解析为((True, True) == True), True:- 先计算
(True, True) == True:元组和单个布尔值的类型、内容都不匹配,结果为False; - 再将这个结果与后面的
True用逗号拼接,形成新元组,最终得到(False, True)。
- 先计算
- 如果要比较两个元组是否相等,需要把两边都写成完整元组形式:
(True, True) == (True, True),此时结果就是True。
内容的提问来源于stack exchange,提问作者oneku
相关产品推荐
相关产品推荐

