【问题标题】:Why is the Boolean value of [None] True and the Boolean value of [] False?为什么[None]的布尔值是True,而[]的布尔值是False?
【发布时间】:2022-11-08 03:15:12
【问题描述】:

我正在做一个项目并偶然发现了这个奇怪的异常,显然任何具有 None 值的列表或元组的布尔值都是 True

输入

print(bool([])) # empty list
print(bool(())) # empty tuple

print(bool([None])) # list with None  
print(bool((None,))) # tuple with None

输出

False
False

True
True

有人可以简要解释一下为什么具有大概 None(null) 值的列表/元组对象将具有 True 而不是 False 的布尔值吗?

【问题讨论】:

标签: python list tuples boolean


【解决方案1】:

如果元组或列表是空的. (None) 和 [None] 是具有 1 个元素的元组/列表,因此不是空的,因此它们在布尔上下文中评估为 True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-29
    • 2011-01-29
    • 2022-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多