python中的any()函数和all()函数怎么用-亚博电竞手机版

python中的any()函数和all()函数怎么用

本篇内容主要讲解“python中的any()函数和all()函数怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python中的any()函数和all()函数怎么用”吧!

回想下,在 python 中编程时,你是否曾经需要检查某个可迭代对象(如列表)中的任何元素或所有元素的计算结果是否为true

假设,我们要判断数字列表a的所有数字是否都大于0,此时你估计会这么干:

a=[1,2,3,4]defis_big_0(l):#判断列表l的所有数字是否大于,如果大于0则返回true,否则返回falseforiinl:ifi<=0:returnfalsereturntrueprint(a)

停顿几秒,想一想,假设下次我们要判断其他条件,如每个元素都是偶数或奇数?难道每次都要写一个函数然后for循环遍历吗?

其实python中有两个神奇的函数any()all(),他们可以快速完成上面类似的任务!

接下来,我们将分享 python 的any()all()函数,并使用简单的示例来了解它们的工作原理。

python 中的布尔数据类型

在学习any()all()之前,先快速回顾一下 python 中的布尔数据类型。你可以在任何 python 对象上调用bool()以获取其真假值。如下代码示例:

#none的真假值是falseprint(bool(none))#输出false#一个空字符串("")的真假值是falseprint(bool(""))#输出false#一个空字符串或任何可迭代对象的真假值是falseprint(bool([]))#输出false#0{int(0),float(0.0)和complex(0j)}的真假值是falseprint(bool(0))#输出false

如上面的代码所示,可知:

  • none的真假值为false

  • 数字零(0)——整数、浮点数和0的复数表示——都是false

  • 所有空的可迭代对象(如列表、元组和字符串)的真假值为false

也就是说,所有非零值和非空可迭代对象都为true,这是相当直观的。

请记住:所有非零值和非空可迭代对象都为true,这是相当直观的!

如何在 python 中使用 any() 函数

让我们了解any()函数的语法,先看一些简单的例子,之后再看更有用的例子。

???? 语法any(iterable)

  • 对于迭代中的任何x,如果bool(x)true,返回true

  • 如果迭代是空,返回false

因此,any()函数将一个可迭代对象作为参数,只要该可迭代对象中至少有一项true,就返回true

下面是一些简单的例子来验证any()函数是如何工作的:

list_1=[0,0,0,1,0,0,0,0]#any(alistwithatleastonenon-zeroentry)returnstrueprint(any(list_1))#outputtruelist_2=[0j,0,0,0.0,0,0,0.0,0]#any(alistofzeros)returnsfalseprint(any(list_2))#outputfalselist_3=[true,false,false]#any(alistwithatleastonetruevalue)returnstrueprint(any(list_3))#outputtruelist_4=["","","codemore"]#any(alistwithatleastonenon-emptystring)returnstrueprint(any(list_4))#outputtruelist_5=["","",""]#any(alistofemptystrings)returnsfalseprint(any(list_5))#outputfalse

如何用any() 函数检查字符串中的数字

现在让我们使用any()函数来检查字符串中是否有任何数字。让我们把步骤写下来:

  • 检查:字符串中是否有任何数字

  • 遍历字符串以访问字符串中的每个字符

  • 通过调用isdigit()方法检查每个字符是否是数字

  • 如果被测字符是数字,则isdigit()返回true,否则返回false

列表推导式(list comprehension)对于在列表中收集所有这些真假值非常有帮助。这是一个快速回顾:

#列表推导式[output_expressionforevery_iteminan_iterable]||vresultofdoingsomethingoneachitemintheiterable#本质上,循环遍历迭代,对每一项进行操作,然后返回操作的结果。

如下面的代码片段所示,我们的示例字符串coding**is**cool**345包含数字。

因此,对字符串调用any()函数应该返回true。我们使用列表推导式来根据字符是否为数字来获取truefalse值的列表。

my_string="coding**is**cool**345"#列表推导are_there_digits=[char.isdigit()forcharinmy_string]#调用any函数print(any(are_there_digits))#输出true

请注意are_there_digits是一个列表,其项数与字符串的长度一样多。

对于字符串中的每个字符,都有一个对应的真假值——如果字符是数字,则为true,如果字符不是数字,则为false,如下所示:

my_string="coding**is**cool**345"#列表推导are_there_digits=[char.isdigit()forcharinmy_string]print(are_there_digits)#output#[false,false,false,false,false,false,false,false,false,false,false,#false,false,false,false,false,false,false,true,true,true]

如何用any()函数检查字符串中的字母

让我们再举一个类似的例子。这一次,让我们检查字符串中的字母。

被测试的字符串***456278)))是不包含字母的 -- 调用any()会按预期返回false。对于字符串中的每个字符,调用isalpha()方法检查它是否是一个字母。

my_string="***456278)))"num=[char.isalpha()forcharinmy_string]print(any(num))#outputfalse

如何用any()函数将多个条件与逻辑 or 组合在一起

假设你有 n 个条件c1c2c3...cn,考虑下面的伪代码:

ifc1orc2or...c_(n-1)orcn:#dothispasselse:#dothispass

你现在可以将所有这些条件收集在一个可迭代对象中,例如列表或元组,然后对该可迭代对象调用any()以检查一个或多个条件是否为true,如下所示。是不是很简单? ????

conditions=[c1,c2,...,c_n]ifany(conditions):#dothispasselse:#dothispass

如何使用all()函数

让我们从all()函数的语法开始:

???? 语法:all(iterable)

  • 如果bool(x)对于可迭代对象中的所有值xtrue,则返回true

  • 如果可迭代对象为空,则返回true

all()函数接受一个可迭代对象作为参数,仅当可迭代对象中的所有项的计算结果为true,或可迭代对象为空时才返回true。在所有其他情况下,all()函数返回false

如何用all()函数检查字符串中的字母

让我们以类似的例子来检查字符串的某些特征。

测试字符串coding**is**cool除了字母之外还包含特殊字符*。因此,当我们使用all()函数检查字符串中的所有字符是否都是字母时,我们应该得到false

my_string="coding**is**cool"are_all_letters=[char.isalpha()forcharinmy_string]print(all(are_all_letters))#outputfalseprint(are_all_letters)#output#[true,true,true,true,true,true,false,false,true,true,false,false,#true,true,true,true]

请注意列表are_all_letters如何在字符串中出现*的所有位置都有false值。

如何用all()函数检查字符串中的数字

现在让我们使用all()函数检查字符串中的所有字符是否都是数字。测试字符串56456278仅包含数字,因此,调用all()应该返回true,因为列表推导式为我们提供了一个true值列表。

my_string="56456278"are_all_digits=[char.isdigit()forcharinmy_string]print(all(are_all_digits))#outputtrueprint(are_all_digits)#output[true,true,true,true,true,true,true,true]

如何用pythonall()函数用逻辑 and 组合多个条件

假设你有 n 个条件c1c2c3...cn,考虑下面的伪代码:

ifc1andc2and...c_(n-1)andcn:#dothispasselse:#dothispass

你可以使用all()函数通过收集迭代中的条件,然后在迭代上调用all()函数来使这一切变得更加简洁。

conditions=[c1,c2,...,c_n]ifall(conditions):#dothispasselse:#dothispass

到此,相信大家对“python中的any()函数和all()函数怎么用”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注亚博电竞手机版,继续学习!

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图