如果集合中的所有元素都为真,则 all() 方法返回真。以下矛盾结果背后的逻辑是什么:
结果 1:
D = {'0', '000', ''}
all(D)
#output:
False
结果 2:
for e in D:
print(all(e))
#output:
True
True
True
最佳答案
python docs这里很清楚:
all(iterable)
Return True if all elements of the iterable are true (or if the iterable is empty).
在第二种情况下,您基本上是在问:
all('')
这是一个空的可迭代对象,所以它是 True
。
在第一种情况下,您询问集合中的每个 项是否为 boolean 值 True,并且空字符串为 not truthy .它基本上归结为:
all('') != bool('')
关于python - 集合的 all() 方法的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64501460/