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
。我们使用列表推导式来根据字符是否为数字来获取True
和False
值的列表。
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 个条件c1
、c2
、c3
...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)
对于可迭代对象中的所有值x
为True
,则返回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 个条件c1
、c2
、c3
...cN
,考虑下面的伪代码:
ifc1andc2and...c_(N-1)andCN:#DOTHISpasselse:#DOTHISpass
你可以使用all()
函数通过收集迭代中的条件,然后在迭代上调用all()
函数来使这一切变得更加简洁。
conditions=[c1,c2,...,c_N]ifall(conditions):#DOTHISpasselse:#DOTHISpass
到此,相信大家对“Python中的any()函数和all()函数怎么用”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
推荐阅读
-
python多行注释符号怎么表示
python多行注释符号怎么表示这篇文章主要介绍“python多行...
-
python支持的操作系统是什么
python支持的操作系统是什么这篇文章主要介绍“python支持...
-
python如何判断列表为空
python如何判断列表为空这篇文章主要介绍“python如何判断...
-
Python如何利用D3Blocks绘制可动态交互的图表
-
2021年度编程语言揭晓
-
PPython:PHP 拥抱 Python 的利器
-
哪种Python IDE最适合你?这里有一份优缺点列表
-
Python分隔字符串函数用法split
aaa,bbb=str.split(‘&&’,2)第一个参数为分隔符第二个参数是要完成的最大拆分数...
-
php安全编程——python测试实例编写
-
神奇的Python模块:pdfkit,将Python抓取的网址内容保存pdf文件