首页
学习
活动
专区
工具
TVP
发布

python中any和all如何使用

python中any()和all()如何使用

和 对于检查两个对象相等时非常实用,但是要注意, 和 是python内置函数,同时numpy也有自己实现的 和 ,功能与python内置的一样,只不过把 类型加进去了。因为python内置的对高于1维的 没法理解,所以numpy基于的计算最好用numpy自己实现的 和 。

本质上讲, 实现了或(OR)运算,而 实现了与(AND)运算。

Return if any element of the iterable is true. If the iterable is empty, return .

伪代码(其实是可以运行的python代码,但内置的any是由C写的)实现方式:

对于all(iterables),如果可迭代对象iterables中所有元素都为 则返回 。特例:若可迭代对象为空,比如空列表 ,则返回 。官方文档如是说:

Return if all elements of the iterable are true (or if the iterable is empty).

伪代码(其实是可以运行的python代码,但内置的all是由C写的)实现方式:

python的模块由两类语言开发,一类为纯python,一类为编译型语言,比如C/C++/Fortran。绝大多数标准库由纯python开发,这是由于python语言具有简洁性及短的开发周期。这些模块的源码很容易获得,在ipython下可用 打印到屏幕上查看,或者写一个脚本保存起来,比如下面这样:

当然,也可以到python安装包下查找,但是效率很低。

python 只能查看用python写的 。可以看看getsource的文档字符串,了解其基本功能。

对于有些模块,通常是关乎运行性能的,一般都由编译型语言开发,比如 模块和for循环N多层的线性代数等模块。所以无法通过 方法获得源码,通常会抛出一个 异常。要查看这些模块的源码,需要到GitHub上的 目录下找,比如在Objects目录下可找到 ,这是 模块的C代码。

那么怎么知道一个模块是内置的呢?可用 或 。比如

一个2X3 ndarray 的例子。用numpy自己实现的 很容易判断两个array是否相等,但python内置的却抛出了异常。

但是,还有更pythonic的写法,因为numpy有一个模块 ,可以直接判断两个array是否完全相等或某个轴相等,其实他也是用 实现的。

其实也不要惊讶,这只是python的常规操作。轮子已经被匠人造好,拿来用就OK了!如果你觉得自己可以造出更金光闪闪的轮子,那就抡起你的斧头;如果觉得已经够完美,那就拿来主义,不要再造了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171218G00VXT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券