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了!如果你觉得自己可以造出更金光闪闪的轮子,那就抡起你的斧头;如果觉得已经够完美,那就拿来主义,不要再造了。

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

Java异常有多慢?

实际上,真正要讨论的问题并不是,“相对‘那些不会发生错误的代码’来说,‘那些以异常形式上报的错误’会有多慢?”,因为你可能也认同“已接受的回答”。相反,真正的问...

35620
来自专栏C/C++基础

*** glibc detected *** malloc(): memory corruption

在Linux Server上不好模拟出来:不过若是先malloc,再越界memset,再free此内存块,然后malloc新内存块就会出现类似错误。

38920
来自专栏程序员阿凯

JDK10 揭秘

17350
来自专栏AI研习社

Python 3.7.0 发布,包含多项新特性和优化

Python 3.7.0 版本于 6 月 27 号正式发布,该版本有多项重大的更新和改进,主要内容如下如下:

9710
来自专栏高性能服务器开发

后台开发面试问题总结

今天看了几篇关于后台开发的面试经验贴,感受到了来自面试官的满满恶意。 主要考察领域:

89020
来自专栏技术小黑屋

你的Java代码对JIT编译友好么?

本文为 InfoQ 中文站特供稿件,首发地址为:你的Java代码对JIT编译友好么?。如需转载,请与 InfoQ 中文站联系。

30420
来自专栏idealclover的填坑日常

C++ cin清理缓冲区

C++在用cin做输入的时候,尤其是需要输入int型值的时候,往往需要做验证与处理。而对于异常值,则需要先清理缓冲区,再准备下一次输入。

24820
来自专栏Vamei实验室

Java基础07 包

我们已经写了一些Java程序。之前的每个Java程序都被保存为一个文件,比如Test.java。随后,该程序被编译为Test.class。我们最终使用$java...

215100
来自专栏程序员互动联盟

【问题追踪】scanf引发的“血案”

最近我遇到C语言学习中一个比较容易让我们这种新手犯错或者忽略的地方。那就是关于scanf函数在读取字符时的问题,以及getchar()与回车的一点恩恩怨怨,换句...

29760
来自专栏用户2442861的专栏

最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)

http://blog.csdn.net/lanxuezaipiao/article/details/24845625

1.4K20

扫码关注云+社区

领取腾讯云代金券