Python函数any()和all()的用法及区别介绍

引子

平常的文本处理工作中,我经常会遇到这么一种情况:用python判断一个string是否包含一个list里的元素。

这时候使用python的内置函数any()会非常的简洁:

fruits = ['apple', 'orange', 'peach']
str = "I want some apples"
if any(element in str for element in fruits):
  print "string contains some fruits."

any()

其实any函数非常简单:判断一个tuple或者list是否全为空,0,False。如果全为空,0,False,则返回False;如果不全为空,则返回True。

all()

all函数正好和any相反:判断一个tuple或者list是否全为不为空,0,False。如果全不为空,则返回True;否则返回False。

这里需要注意的是,空tuple和空list的返回值是True

python中内建函数all()和any()的区别

all(x) 是针对x对象的元素而言,如果all(x)参数x对象的所有元素不为0、”、False或者x为空对象,则返回True,否则返回False
如:

In [25]: all(['a', 'b', 'c', 'd']) #列表list,元素都不为空或0
Out[25]: True
In [26]: all(['a', 'b', '', 'd']) #列表list,存在一个为空的元素
Out[26]: False
In [27]: all([0, 1,2, 3]) #列表list,存在一个为0的元素
Out[27]: False
In [28]: all(('a', 'b', 'c', 'd')) #元组tuple,元素都不为空或0
Out[28]: True
In [29]: all(('a', 'b', '', 'd')) #元组tuple,存在一个为空的元素
Out[29]: False
In [30]: all((0, 1,2, 3)) #元组tuple,存在一个为0的元素
Out[30]: False
In [31]: all([]) # 空列表
Out[31]: True
In [32]: all(()) # 空元组
Out[32]: True

any(x)是判断x对象是否为空对象,如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true

In [33]: any(['a', 'b', 'c', 'd']) #列表list,元素都不为空或0
Out[33]: True
In [34]: any(['a', 'b', '', 'd']) #列表list,存在一个为空的元素
Out[34]: True
In [35]: any((0,1)) #元组tuple,存在一个为空的元素
Out[35]: True
In [36]: any((0,'')) #元组tuple,元素都为空
Out[36]: False
In [37]: any(()) # 空元组
Out[37]: False
In [38]: any([]) # 空列表
Out[38]: False

总结

以上所述是小编给大家介绍的Python函数any()和all()的用法及区别介绍 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • python中map、any、all函数用法分析

    本文实例讲述了python中map.any.all函数用法.分享给大家供大家参考.具体分析如下: 最近想学python,就一直比较关注python,昨天在python吧看到有个帖子提问怎么在python中怎么判断密码是否符合规范,回帖中有很多用循环的,除此外还有一个没有用循环,代码非常简练,下面是代码: def volid(pwd): a = any(map(str.isupper,pwd)) b = any(map(str.islower,pwd)) c = any(map(str.isdig

  • python使用any判断一个对象是否为空的方法

    本文实例讲述了python使用any判断一个对象是否为空的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: >>> eth = {"eth0″:"192.168.1.1″} >>> any(eth) True >>> eth = {} >>> any(eth) False 判断list是否为空 传统的方式: 复制代码 代码如下: if len(mylist):     # Do somethi

  • Python中easy_install 和 pip 的安装及使用

    easy_install 和 pip的介绍: easy_install和pip都是用来下载安装Python一个公共资源库PyPI 的相关资源包的,pip是easy_install的改进版,提供更好的提示信 息,删除package等功能.老版本的python中只有easy_install, 没有pip. easy_install 打包和发布 Python 包 pip 是包管理 easy_install 的安装 前提是python的环境已配置好 下载地址:https://pypi.python.or

  • Python错误提示:[Errno 24] Too many open files的分析与解决

    背景 最近在工作中发现了一个错误,在执行多线程扫描脚本的时候频繁出现下面这个错误 HTTPConnectionPool(host='t.tips', port=80): Max retries exceeded with url: /index.php (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f29d4081150>: Failed to e

  • python里使用正则的findall函数的实例详解

    python里使用正则的findall函数的实例详解 在前面学习了正则的search()函数,这个函数可以找到一个匹配的字符串返回,但是想找到所有匹配的字符串返回,怎么办呢?其实得使用findall()函数.如下例子: #python 3. 6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # import re text = 'abbaaabbbbaaaaa' pattern = 'ab' for match in r

  • Python函数any()和all()的用法及区别介绍

    引子 平常的文本处理工作中,我经常会遇到这么一种情况:用python判断一个string是否包含一个list里的元素. 这时候使用python的内置函数any()会非常的简洁: fruits = ['apple', 'orange', 'peach'] str = "I want some apples" if any(element in str for element in fruits): print "string contains some fruits."

  • Python函数装饰器原理与用法详解

    本文实例讲述了Python函数装饰器原理与用法.分享给大家供大家参考,具体如下: 装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓存.权限校验等应用场景.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用.概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能. 严格来说,装饰器只是语法糖,

  • 浅谈Python中threading join和setDaemon用法及区别说明

    Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别. 1.join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这个线程时可以使用被调用线程的join方法. 原型:join([timeout]) 里面的参数时可选的,代表线程运行的最大时间,即如果超过这个时间,不管这个此线程有没有执行完毕都会被回收,然后主线程或函数都会接

  • python 列表,数组和矩阵sum的用法及区别介绍

    1. 列表使用sum, 如下代码,对1维列表和二维列表,numpy.sum(a)都能将列表a中的所有元素求和并返回,a.sum()用法是非法的. 但是对于1维列表,sum(a)和numpy.sum(a)效果相同,对于二维列表,sum(a)会报错,用法非法. 2. 在数组和矩阵中使用sum: 对数组b和矩阵c,代码b.sum(),np.sum(b),c.sum(),np.sum(c)都能将b.c中的所有元素求和并返回单个数值. 但是对于二维数组b,代码b.sum(axis=0)指定对数组b对每列求

  • Kotlin常用函数let,with,run,apply用法与区别案例详解

    在kotlin编程中let.with.run.apply这些函数使用率是非常高的,有时候可以通用,差别很小,但如果能记住他们的不同点,可以更加合理的选择使用. 在这之前首先要了解一下Lambda表达式的一些规则,这会帮助你理解使用这些函数的时候有没有( )可不可以用it代替参数等.因为这些函数的最后一个参数都是lambda. 如何理解lambda呢?可以把lambda理解为就是一个对象,但这个对象比较特殊,它是一段代码,既然是对象就可以作为函数的参数使用.这种对象称为函数对象. lambda表达

  • javascript函数命名的三种方式及区别介绍

    javascript函数命名的三种方式及区别介绍 第一 复制代码 代码如下: function fn(val1,val2) { alert(val1+val2); } fn(1,2); 第二 复制代码 代码如下: var fn=function() { alert(val1+val2); } fn(1,2); 第三 复制代码 代码如下: var fn=new Function("alert(val1+val2)"); fn(1,2); 上面三种方式逻辑上是等价的,但是还是有点小区别:区

  • php中替换字符串函数strtr()和str_repalce()的用法与区别

    首先来看看这个php字符串替换函数 strtr()的两种用法: strtr(string,from,to) 或者strtr(string,array) 首先针对strtr函数第一种方式: 我们看看下面的举例: <?php echo strtr("I Love you","Lo","lO"); ?> 得到的结果是: I lOve yOu 这个结果提醒我们: 1.strtr它是区分大小写的 2.strtr的替换是很特殊的,你注意看后面那个

  • ASP.NET Core MVC中Required与BindRequired用法与区别介绍

    在开发ASP.NET Core MVC应用程序时,需要对控制器中的模型校验数据有效性,元数据注释(Data Annotations)是一个完美的解决方案. 元数据注释最典型例子是确保API的调用者提供了某个属性的值,在传统的ASP.NET MVC中使用的是RequiredAttribute特性类.该属性仍然可以在ASP.NET Core MVC中使用,但也提供了一个新的特性类BindRequiredAttribute. 今天让我们来看看它们之间的细微差别. RequiredAttribute的典

  • Java中的Set、List、Map的用法与区别介绍

    Collection 接口 :Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法.Set和List都继承了Conllection,Map Collection接口的方法: boolean add(Object o):向集合中加入一个对象的引用 void clear():删除集合中所有的对象,即不再持有这些对象的引用 boolean isEmpty():判断集合是否为空 boolean contains(Object o):判断集合中是否持有特定对

  • Python中的 sort 和 sorted的用法与区别

    今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: sort是Python中列表的方法 sort() 方法语法: list.sort(key=None, reverse=False) 有两个参数,这里不讲第一个参数,第二个参数当 reverse=True时为降序排列,reverse=False为升序排列,默认reverse=False 重要: 该方

随机推荐