全部版块 我的主页
论坛 数据科学与人工智能 人工智能
1023 1
2019-12-02

AIU人工智能学院:数据科学、人工智能从业者的在线大学。

数据科学(Python/R/Julia)数据分析、机器学习、深度学习

Python内置序列函数系列所有文章都以几个术语为基础:可迭代对象(iterable)、迭代器(iterator)、序列(sequence)、生成器(generator)等。若对此不太理解,可移步Python随笔4前面部分查看。

今天讨论一组有意思的函数:all与any函数。

1.all函数

all函数的具体语法是:

all(iterable)——参数iterable(可迭代对象)的所有元素之中,没有1个是False,则返回True;若有至少1个是False,则返回False。

这是什么意思呢?两层意思:第一,当可迭代对象中所有元素都为True的话,all(iterable)函数返回True;第二,若可迭代对象本身是空的,比如一个空的list,也就是没有任何元素的时候,依然返回True,因为没有任何元素,依然表示所有元素中没有1个是False。

all(iterable)函数等价于:

def all(iterable):

for element in iterable:

if not element:

return False

return True

2.any函数any函数的具体语法是:

any(iterable)——参数iterable(可迭代对象)的所有元素之中,只要有1个是True,则返回True;否则返回False。

这个跟上面all函数是一样的道理,依然两层意思:第一,当可迭代对象中所有元素里至少有1个是True的话,any(iterable)函数返回True;第二,若可迭代对象本身是空的,比如一个空的list,也就是没有任何元素的时候,那么返回False,因为没有任何元素,就表示所有元素中没有1个是True。

any(iterable)函数等价于:

def any(iterable):

for element in iterable:

if element:

return True

return False

这两个函数的例子如下:

l1 = ['a', 3, (2, 3), {'a': 1}] # 里面所有元素全为真值。

l2 = [1, 2, 0, 'a'] # 里面元素有真值,也有假值。

l3 = [0, {}, set, {}] # 里面所有元素全为假值。

all(l1)

Out[30]: True

all(l2)

Out[31]: False

all(l3)

Out[32]: False

any(l1)

Out[33]: True

any(l2)

Out[34]: True

any(l3)

Out[35]: False

l4 = [] # l4是一个空的列表(可迭代对象)。

all(l4)

Out[37]: True

any(l4)

Out[38]: False

3.小结all函数和any函数实际上是基本逻辑“与”、“或”在可迭代对象(如序列)层面上的体现与应用。注意并理解当可迭代对象本身是空(比如列表为空)时的特殊情况。


关注“AIU人工智能”公众号,回复“白皮书”获取数据分析、大数据、人工智能行业白皮书及更多精选学习资料!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2022-10-29 23:12:16
点个赞加点人气
感谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群