python通过一个语句分析几个常用函数和概念
前言
过年也没完全闲着,每天用一点点时间学点东西,本文为大家介绍几个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中几个常用的函数和概念,并分析了由繁而简的过程。
python通过一个语句分析几个常用函数和概念的更多相关文章
- python一条语句分析几个常用函数和概念
前言 过年也没完全闲着,每天用一点点时间学点东西,本文为大家介绍几个python操作的细节,包含all.any.for in等操作,以及介绍我解决问题的思路. 一.开篇 先从我看到的一个简单的语句开始 ...
- Python基础——数据类型、流程控制、常用函数
Python tutorial :Python网站上的对 Python 语言和系统的基本概念和功能进行的非正式的介绍. 在学习Python之前,我们需要学会在各个平台配置Python的运行环境,下文中 ...
- python重要的第三方库pandas模块常用函数解析之DataFrame
pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...
- python面试题(二)字符串常用函数
今天在微信的公众号上看到了一遍python学习开发的文章,里面有一些python的面试题,碰巧最近python不知道学什么了,索性学一下这篇文章啊!!先写一下一些字符串的常用函数.(ps:本人太菜,若 ...
- python学习笔记3.1_数据读取常用函数参数
一.read_table/read_csv常用函数参数 1.path:表明文件系统位置的字符串.url或文件型对象 2.sep或delimiter:用于分隔每行字段的字符序列或正则表达式 3.head ...
- Python之路-条件控制&循环语句&列表推导式&常用函数
一.什么是条件控制语句 条件控制语句,也可以称之为判断语句,通过一条或多条的执行结果来决定接下来要执行的代码块. 二.if语句 if语句是用来进行判断的,最简答的if语句只有一个判断一个操作. 语法: ...
- Python学习笔记之—— File(文件) 对象常用函数
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 1.file.close() close() 方法用于关闭一个已打开的文件.关闭后的文件不能再进行读写操作, 否则会触 ...
- python五十六课——正则表达式(常用函数之search())
函数:search(regex,string,[flags=0]):参数:和match一样理解功能:从头开始匹配字符串中的数据,如果头不匹配继续往后尝试匹配,直到有第一个匹配成功的子数据,立即返回一个 ...
- python五十六课——正则表达式(常用函数之match)
函数:match(regex,string,[flags=0])参数:regex:就是正则表达式(定义了一套验证规则)string:需要被验证的字符串数据flags:模式/标志位,默认情况下(不定义) ...
随机推荐
- IDC服务器的六大基础知识
无论企业或个人来说,一个是否适合自己的IDC运营商对于业务发展是至关重要的.然而很多用户对IDC行业一知半解,不太了解服务器的种类,更不知道选择什么样的服务器更适合自己了.今天编辑汇总了一些IDC所需 ...
- ThinkPHP5+小程序商城 网盘视频
ThinkPHP5+小程序商城 网盘视频 有需要联系我 QQ:1844912514
- mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)
REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化表 show create table tablename 表结构 REPA ...
- 如何把本地项目上传到Github
作为一个有追求的程序员,需要撸点自己的开源项目,虽然我现在只是在学着造轮子,但这并不影响我成为大神的心. Github是基于git实现的代码托管,很多程序员在上面托管自己的开源项目,我使用Github ...
- spring boot项目编译出来的jar包如何更改端口号
执行的时候更改端口即可 . java -Dserver.port=9999 -jar boot.jar
- 2017-07-04(sudo wc sort)
sudo 作用 root把本来只能超级用户执行的命令,赋予普通用户执行. 添加 运行visudo命令,在文件底部添加信息即可! sudo -l 查看用户可以运行的命令 use1 ALL=(ALL) ...
- springcloud(十二):使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪
随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位 ...
- CSS选择器的新用法
前面的话 现在,预处理器(如sass)似乎已经成为开发CSS的标配,正如几年前jQuery是开发JS的标配一样.JS的querySelector借鉴了jQuery的选择器思想,CSS选择器也借鉴了预处 ...
- Git版本管理的简介与安装[一]
标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git简介 很多人都知道,Linus在1991年创建了开源的Linux,从此,Lin ...
- [SQL] 函数整理(T-SQL 版)
函数整理(T-SQL 版) 一.数学函数 1.求绝对值 ABS() 函数用来返回一个数值的绝对值. SELECT ABS(-5.38) AS absValue; 2.求指数 POWER() 函数是用 ...