我知道这有充分的理由,但我想知道是什么原因?
>>> print all([])
True
如果all()用于检查iterable上的每个项目是否均评估为“ True”,并且我们知道空列表的评估结果为False
>>> bool([])
False
那么,为什么all()对于空列表返回True?
<编辑>
我已经阅读了文档,并且知道实现
def all(iterable):
for element in iterable:
if not element:
return False
return True
但是问题是为什么不呢?
def all(iterable):
if not iterable:
return False
for element in iterable:
if not element:
return False
return True
这有逻辑吗?如果您有已完成任务的列表
today_todo_status = [task.status for task in my_todo if task.date == today]
can_i_go_home = all(today_todo_status)
好的,在上面的 假设 示例中,如果我没有任务,那真的很有意义,所以我可以回家了。
但是还有其他情况,我不认为all()是为待办事项清单制作的。
这表示为“对于S中的所有X,X为真”。如果S为空,则没有X。但是,真值声明仍然为True,因为对于所有X来说,X都是真实的……根本就没有X!
这是使用逻辑的解释。
考虑两个集合A和B,其中A + B是两个集合的并集。
如果any(A + B)= True-> any(A)或any(B)= True,但是我们不能断言any(A)= True或any(B)= True。
如果any(A + B)= False-> any(A)= False和any(B)= False。
如果all(A + B)= True-> all(A)= True和all(B)= True
如果all(A + B)= False-> all(A)= False或all(B)= False,但是我们不能断言all(A)=
False或all(B)= False。现在代替B,让我们将空集0添加到A。我们想提出逻辑,使得添加空集不会更改all()或any()的值,因为A + 0 = A。
任何(A + 0)=任何(A)或任何(0)
any(0)必须为False,因此,如果any(A)为True,则any(A + 0)为True,如果any(A)为False,则any(A +
0)为False。全部(A + 0)=全部(A)和全部(0)
如果all(A)为True,则all(A + 0)为True。因此,all(0)为True。
本文向大家介绍详解Python中的内建函数,可迭代对象,迭代器,包括了详解Python中的内建函数,可迭代对象,迭代器的使用技巧和注意事项,需要的朋友参考一下 Python中的内建函数和可迭代对象,迭代器 求值标识 id() #标识id 返回对象的唯一标识,CPython返回内存地址 hash() #哈希, 返回对象的哈希值 len(s) -->返回一个集合类型的元素个数 range(start,
问题内容: 我和我的同事有一个错误,这是由于我们假设会返回空流调用而导致的。 当然,假定和不阅读文档是我们的错。但是我不明白的是为什么空流的默认行为会返回。这是什么原因呢?像(相反地返回false)一样,此操作以命令式方式使用,它离开了monad,并且可能在语句中使用了。考虑到这些事实,是否有任何理由使大多数用途都需要默认为空流? 问题答案: 这就是所谓的虚无事实。空集合的所有成员都满足您的条件;
将这些视为对象: 查看java文档,对于LinkedList类,LinkedList类中没有迭代器方法的实现,但是,实现是在AbstractSequentialList类中。 listIterator()方法在AbstractList类中实现,AbstractSequentialList的父类,总结一下,如果我没弄错的话,它返回一个不使用节点概念的迭代器对象。 但是方法是在LinkedList类中
问题内容: 在浏览一些旧代码时,我遇到了这个宝石: 第二行在Eclipse中被标记为无效代码,我知道为什么。似乎没有明确抛出任何异常,并且构造函数不可能抛出任何类型的异常(例如)。 我的问题是 为什么 要进行空检查?以前在Java的旧版本中,构造函数是否可以返回null?还是这仅仅是毫无用处的代码? 问题答案: 该代码在任何Java版本中均无效。构造函数不可能返回,即使构造函数会抛出异常,也不会调
我可以使用Java streams/lambda表达式来执行这个迭代,而不是使用while循环来填充列表吗?
问题内容: 我在获取云端点方法的用户ID时遇到问题。我在Android客户端中使用了oauth2身份验证,并将凭据传递给了我的服务。下面与我的方法类似(简化以使其更加清晰)。 我注意到python的问题8848似乎与此问题非常相似。 Java api中是否也存在相同问题?方法 即使android客户端中的凭据已执行oauth2身份验证,联邦身份和userId也会显示为null。电子邮件地址正确显示