python通过一个语句分析几个常用函数和概念
2018-02-23 19:12
429 查看
前言
过年也没完全闲着,每天用一点点时间学点东西,本文为大家介绍几个python操作的细节,包含all、any、for in等操作,以及介绍我解决问题的思路。一、开篇
先从我看到的一个简单的语句开始。text = '拍照' any(word in text for word in ["拍照", "拍张照"])
刚看到这个语句的时候我整个人完全懵住了,完全看不懂这是干啥的。不过其实编程难的不是这些东西,这些东西再也不怕,也能想办法解决掉,而隐藏在这后面的编程思维及数学等知识是很难解决的。
1.1 any、all
言归正传,看到这个语句后,我想到的就是如何将复杂的问题简单化。于是我先查了一下any函数,查到any和all函数都是对于集合而言的。any函数用于判断给定的可迭代参数iterable是否全部为空对象,如果都为空、0、false中的一种(以下简称为空),则返回False,如果不都为空,则返回True;而all函数刚好相反,如果全不为空,则返回True,否则返回False。
1.2 for in
这就是说上面的语句any里面是一个iterable对象。我们再来看一下里面的语句:text = '拍照' (word in text for word in ["拍照", "拍张照"])
可以明显的看到一个for,for in在python里面很明显,简单的说就是循环一个集合,并对此集合进行过滤、计算等操作。同样先简化它:
(word for word in ["拍照", "拍张照"])
这很明显,生成的集合与原来相同,但是平常我们看到的都是这样的:
[word for word in ["拍照", "拍张照"]]
这里面就牵涉到python生成器的概念。
1.3 生成器
生成器的优点在于不需要事先计算,只需要在需要的时候才会调用,不浪费存储空间和计算时间。简单的说生成器是一种特殊的集合,这种集合并不像普通的集合一样事先全部算出,而是在需要的时候才去计算。其实实现方式很简单,将[]换成()即可,于是就有了上面的语句。关于生成器的其他操作和生成方式可以在网上查阅相关资料,这里不再赘述。1.4 继续for in
接着上面的for in继续介绍,(word for word in ["拍照", "拍张照"])结果与原始数据相同,那么如果我们想要产生一点变化就要对第一个word执行一个函数,于是就有了
word in text,这里的in就是个函数,判断word是否是在text中,即word是否是text的子串,相当于其他语言的contain。
这样就很清楚了,
(word in text for word in ["拍照", "拍张照"])表示循环原始集合,判断每个元素是否是给定的text字符串的子串,返回的是个True、False集合。
当然我们也可以在循环的时候实现过滤,看如下语句:
(word for word in ["拍照", "拍张照"] if word in text)
貌似这条语句跟上面的差别就在于word in text的位置发生了变化,并多了个if。其实二者差别非常大,这里实现的功能是判断word是否是text的子串,如果是则取出,相当于过滤掉不是子串的对象,最终返回的是一个字符串集合。
1.5 总体
那么这里我们再来看一下最开始的语句:text = '拍照' any(word in text for word in ["拍照", "拍张照"])
综合以上语句就可以知道此语句实现的是循环集合判断每一个字符串是否是给定的text的子串,最终如果不全为空的话就返回True,即text只要包含集合中的任意一个字符串,则返回True。可以用于命令检测等等场合。
二、总结
本文通过一个稍微复杂的语句,为大家介绍了python中几个常用的函数和概念,并分析了由繁而简的过程。相关文章推荐
- 用分析函数实现自动生成sqlloader定长数据装载控制文件的一个语句
- (python)通过一个代码例子来分析对象的生命周期
- 一个Ip2long函数,通过调用go tool pprof分析,竟发现内存分配了3G
- 通过编写一个简单的漏洞扫描程序学习Python基本语句
- 9.4 编写一个程序,通过执行结果分析在引用类对象时是否执行类的构造函数与析构 函数。
- 【python】几个常用工具函数
- 通过一个函数或sql语句,随机生成任意6个字母组成的字符
- 一个常用的通过CURL发送HTTP请求的函数 ThinkPHP
- Python通过练习掌握字符串常用操作和复习python常用条件判断语句
- Python生成随机数与random模块中最常用的几个函数
- Python学习笔记(二):条件控制语句与循环语句及常用函数的用法
- SQL语句的几个常用函数
- 【Python学习心得】Python数据分析几个比较常用的方法
- Python数据分析常用函数笔记
- 【Python】Learn Python the hard way, ex35 通过一个简单游戏,练习循环和分支语句
- 从零开始学Python(五):常用函数语句和运算符
- 通过一个函数或sql语句,随机生成任意6个字母组成的字符
- python数据分析常用函数
- 几个常用的Oracle分析函数
- SQL Server中的几个方法和Transact SQL 常用语句以及函数