Python 带有条件语句的布尔值

Python bool values with conditional statements

为什么 bool[False] 的计算结果为真而 bool(False) 的计算结果为假?

根据 python 文档: “任何值不为 undefined 或 null 的对象,包括值为 false 的布尔对象,在传递给条件语句时计算结果为 true。”

元组和列表都是对象,那么为什么会出现这种模棱两可的行为呢?

你是说 bool([False]) 吗?非空列表的计算结果为 True,空列表的计算结果为 False。列表 [False] 不为空,所以它是 True.

bool([]) 的计算结果为 False.

(False) 不是元组。您将需要使用 (False,)bool((False,)) 的计算结果为 True 因为它是一个非空序列。