gpt4 book ai didi

python - boolean 测试 Python 中的列表

转载 作者:太空狗 更新时间:2023-10-29 20:42:44 25 4
gpt4 key购买 nike

我正在测试一个列表,看它是否为空。通常我使用 len(list) == 0 并且我依稀记得不久前读到过测试列表是否为空的正确方法是它是真还是假。

所以我试过 list is False,结果返回 False。也许我应该使用 == ?不,那也返回 false。 list 为 True,与 list == True 一样返回 false。

现在我很困惑,所以我快速谷歌了一下,结果是:Best way to check if a list is empty

最佳答案是:

if not a:
print "List is empty"

所以我搜索了更多,最后找到了 python 手册,其中 4.1 指出:

可以测试任何对象的真值,用于 if 或 while 条件或作为下面 boolean 运算的操作数。以下值被认为是错误的:

任何空序列,例如,''、()、[]。

现在我很困惑。如果我测试一个列表,就好像没有列表一样,它工作正常。但是,如果一个空列表是假的,那么为什么我不能只做 if list is False 或 if list == False?

谢谢

最佳答案

空列表不是 False,但是当您将其转换为 boolean 值时,它会转换为 False。对于字典、元组、字符串等也是如此:

>>> [] == False
False
>>> bool([]) == False
True
>>> {} == False
False
>>> bool({}) == False
True

当您将某些内容置于 if 子句的条件中时,用于测试 if 的是它的 boolean 值。这就是为什么 if someListif bool(someList) 相同的原因。同样,not foo 执行 boolean 运算 not,因此 not [] 等于 True。

关于python - boolean 测试 Python 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11732329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com