Python 所有([6,7,8,9])= 真。但是 6 = 假

Python all([6,7,8,9]) = True. But 6 = False

我对 all() 运算符的理解是,如果 all 可迭代元素的 return 值为真,则它 return 为真。要么是我完全误解了它的功能,要么是以下内容不太正确:

>>> all([0, 7, 8, 9])
False
>>> all([6, 7, 8, 9])
True
>>> any([0, 7, 8, 9])
True
>>> 0 == True
False
>>> 1 == True
True
>>> 6 == True
False
>>> 7 == True
False

这是怎么回事?

编辑 好吧,我得到了很多解释 0 是假的答案。我明白了。 0 = 假,1 = 真。 我的问题是 6 returned 为假,但是当作为列表的一部分进行测试时它 returns 为真?

>>> all([6, 7, 8, 9])
True
>>> 6 == True
False

这是我不明白的地方?

查一查,你真正想问的是,67看起来是False,为什么第二个表达式是True。如果是这样,答案是非零整数在布尔上下文中的计算结果为 True;但是当你测试 6 == True 时,整数并没有被强制转换为布尔类型,所以实际上你测试的是 6 == 1,即 False.

编辑:在布尔上下文中测试某物是否为 True 的正确方法是,例如:

bool(6)