今天复习的时候看到了all()和any() 就多看了两眼,怎么看都觉得他俩长得像双胞胎啊,,,,呜呜呜,为了分清他们我可真是不容易啊~~~~
all(x)是针对x对象的元素而言,如果all(x)参数x对象的所有元素不为0,False,或者空对象,则返回True,否则返回False
any(x)是判断x对象是否为空对象,如果都为空,False,0,则返回False,如果不都为空,0,False,则返回True
举例说明:
解释:
先来看一下里面传入的是列表类型的吧
all(['a','b','c','d'])#返回结果 :True
all(['a','b','','d'])#返回结果:False
上面的代码和下面的代码不一样的地方在于下面的代码有一个空的元素,而all这个函数主要就是对单个元素起作用的,所以当第二行代码里有一个空元素的时候,他就会返回False
all(('a','b','c','d'))#返回结果 :True
all(('a','b','','d'))#返回结果:False
这两行和上面的差不多,只不过数据类型不一样了,但是函数的本质还是一样的。
all([]) #返回结果:True
all(()) #返回结果: True
上面的两行代码再解释一下:因为all()这个内建函数是对函数内部的元素起作用的,在这里是空列表和空元组,里面没有元素,所以返回结果为True
这里再补充一行代码
all(['a',0]) #返回结果 False
存在了一个为0 的元素,所以返回结果为False
下面来给大家解释一下any()这个内建函数的例子。
all()和any()的区别就是all()是针对里面的单个元素而言的,any()是针对函数内部数据类型的所有元素。
先看前两个例子
any(['a','b','c','d']) #返回结果True
any(['a','b','','d']) #返回结果为True
上面两个小例子的区别就是第二个any中有空的元素,虽然有所不同,但是他们的结果都是一样的。(这个还是看any()函数的定义啦~~,他是针对所有的元素的)
好了,下一个就是体现他本质的时候了。
any([])#返回结果False
any(())#返回结果False
any()是针对所有的元素的,传入一个空列表或者一个空元祖,他里面的所有元素都为空,所以他们两个的返回结果都为False
any((0,1))#返回结果是True
上面这个例子是有一个元素为0,但是他不是所有的,所以他的返回结果还为True(只有所有的元素为空或者为0的时候返回的结果才是False)
ps:这里给大家说一下我上面的一个错误
其实这个错误很容易理解,元组的话他是一个可迭代的数据类型,里面至少要有两个元素,如果,因为要可以迭代嘛!!!!
个人理解的any()和all()的区别,大家可以看一下。
all()是针对里面传入的单个元素而言的,只要他里面有任意一个为空,或者0或者False的话就返回False,否则为True
any()是针对里面传入的所有元素而言的,只要他里面的所有元素为空,0 ,或者是False的话就返回False, 否则为False
好了,今天的重点就是all()和any()函数的理解,大家自己多试试几个例子,多练习练习。