网站建设资讯

NEWS

网站建设资讯

记忆python函数 python记数函数

Python 之内置函数:filter、map、reduce、zip、enumerate

这几个函数在 Python 里面被称为高阶函数,本文主要学习它们的用法。

创新互联成立于2013年,先为淮北等服务建站,淮北等地企业,进行企业商务咨询服务。为淮北企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

filter 函数原型如下:

第一个参数是判断函数(返回结果需要是 True 或者 False),第二个为序列,该函数将对 iterable 序列依次执行 function(item) 操作,返回结果是过滤之后结果组成的序列。

简单记忆:对序列中的元素进行筛选,获取符合条件的序列。

返回结果为: ,使用 list 函数可以输入序列内容。

map 函数原型如下:

该函数运行之后生成一个 list,第一个参数是函数、第二个参数是一个或多个序列;

下述代码是一个简单的测试案例:

上述代码运行完毕,得到的结果是: 。使用 print(list(my_new_list)) 可以得到结果。

map 函数的第一个参数,可以有多个参数,当这种情况出现后,后面的第二个参数需要是多个序列。

map 函数解决的问题:

reduce 函数原型如下:

第一个参数是函数,第二个参数是序列,返回计算结果之后的值。该函数价值在于滚动计算应用于列表中的连续值。

测试代码如下:

最终的结果是 6,如果设置第三个参数为 4,可以运行代码查看结果,最后得到的结论是,第三个参数表示初始值,即累加操作初始的数值。

简单记忆:对序列内所有元素进行累计操作。

zip 函数原型如下:

zip 函数将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一样,则返回列表长度与最短的对象相同,利用星号( * )操作符,可以将元组解压为列表。

测试代码如下:

展示如何利用 * 操作符:

输出结果如下:

简单记忆:zip 的功能是映射多个容器的相似索引,可以方便用于来构造字典。

enumerate 函数原型如下:

参数说明:

该函数用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

测试代码如下:

返回结果为: 。

本文涉及的函数可以与 lambda 表达式进行结合,能大幅度提高编码效率。最好的学习资料永远是官方手册

Python语法小记忆

Python 中的字符串还支持转义字符。所谓转义字符是指使用反斜杠“\”对一些特殊字符进行转义。

转义字符说明

\ 续行符

\n 换行符

\0 空

\t 水平制表符,用于横向跳到下一制表位

\'' 双引号

\' 单引号

\\ 一个反斜杠

\f 换页

\0dd 八进制数,dd 代表字符,如\012 代表换行

\xhh 十六进制数,hh 代表字符,如\x0a 代表换行

在Python 中,提供了如下表所示的函数进行数据类型的转换。

函数作用

int(x) 将x 转换成整数类型

float(x) 将x 转换成浮点数类型

complex(real [,imag]) 创建一个复数

str(x) 将x 转换为字符串

repr(x) 将x 转换为表达式字符串

eval(str) 计算在字符串中的有效Python 表达式,并返回一个对象

chr(x) 将整数x 转换为一个字符

ord(x) 将一个字符x 转换为它对应的整数值

hex(x) 将一个整数x 转换为一个十六进制字符串

oct(x) 将一个整数x 转换为一个八进制的字符串

赋值运算符主要用来为变量等赋值。使用时,可以直接把基本赋值运算符“=”右边的值赋给左边的变量,也可以进行某些运算后再赋值给左边的变量。在Python 中常用的赋值。

运算符如下表所示。

运算符说明举例展开形式

= 简单的赋值运算x=y x=y

+= 加赋值x+=y x=x+y

-= 减赋值x-=y x=x-y

*= 乘赋值x*=y x=x*y

/= 除赋值x/=y x=x/y

%= 取余数赋值x%=y x=x%y

**= 幂赋值x**=y x=x**y

//= 取整除赋值x//=y x=x//y

比较运算符,也称关系运算符,用于对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回True,如果为假,则返回False。比较运算符通常用在条件语句中作为判断的依据。Python 中的比较运算符如下表所示。

运算符作用举例结果

大于'a' 'b' False

小于156 456 True

== 等于'c' == 'c' True

!= 不等于'y' != 't' True

= 大于或等于479 = 426 True

= 小于或等于62.45 = 45.5 False

逻辑运算符是对真和假两种布尔值进行运算,运算后的结果仍是一个布尔值,Python中的逻辑运算符主要包括and(逻辑与)、or(逻辑或)、not(逻辑非)。

运算符含义用法结合方向

and 逻辑与op1 and op2 从左到右

or 逻辑或op1 or op2 从左到右

not 逻辑非not op 从右到左

所谓运算符的优先级,是指在应用中哪一个运算符先计算,哪一个后计算,与数学的四则运算应遵循的“先乘除,后加减”是一个道理。

下表按从高到低的顺序列出了运算符的优先级。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

运算符说明

** 幂

~、+、- 取反、正号和负号

*、/、%、// 算术运算符

+、- 算术运算符

、 位运算符中的左移和右移

位运算符中的位与

^ 位运算符中的位异或

| 位运算符中的位或

、=、、=、!=、== 比较运算符

在Python 中,使用内置函数input()可以接收用户的键盘输入。input()函数的基本用法如下:

variable = input("提示文字")

其中,variable 为保存输入结果的变量,双引号内的文字用于提示要输入的内容。

默认的情况下,在Python中,使用内置的print()函数可以将结果输出到IDLE或者标准控制台上。其基本语法格式如下:

Print(输出内容)

其中,输出内容可以是数字和字符串(字符串需要使用引号括起来),此类内容将直接

输出,也可以是包含运算符的表达式,此类内容将计算结果输出。

Python切片语法图像记忆法

无论是字符串、列表还是元组,都被称作【序列】,只要是序列就可以切片。而搞清楚序列的序号的定位方法,是一个基本功。

在Python里,序号有两种表达方式,一个是 正向角标序号 ,一个是 反向倒数序号 。

我定义的这两个名字,会更利于中文语言环境的同学的理解和学习。

一图胜万言:

有一个字符串序列”abcdef”,它的每一个字符的角标关系就是上图所示。其实这个方法也叫【插空法】。想象序列中每一项之间都有一个空隙,我们就是把0,1,2,3,4,5……这个数数序列插到空隙中。对于每一项来说,它的左下角的角标就是自己的定位,大家都是对号入座的。

建立一个有效的模型,通过这样一个明确的方法,至少我个人在平时列表序号时可以一步到位,不会数错。

在做切片时,有时还会用到倒序号,其实很好办,比如字母d就是倒数第3个,很符合中文的语言习惯,python的序号就是-3.

那么他是什么原理呢?你可以试着把上面的图写在一个纸条上,把它首尾相接,这个时候,f的右下角标和a的左下角标重合,都是0,像不像一个数轴?在数轴上,0的右侧起,是1,2,3,4,……,0的左侧起,自然就是-1,-2,-3,……了,很自然是不是?

再换一个角度,从负数开始插空,是不是还是左下角角标规则?神奇吧?~

这就是python的神奇之处,他很符合我们的数学逻辑,而且是一个统一、自洽的严谨逻辑。

记住一句话: 。总共分成三类, 0个冒号 、 1个冒号 和 2个冒号 。

当序号是0时,冒号语法允许不写0。最后两个公式里,其实是[0:-4]和[-4:0]。可以发现,只有位置是0时,可以左右颠倒,因为0既可以表示第1位的序号数(在冒号左侧时),也可以表示最后一位(在冒号右侧时,因为左闭右开),正因为如此特殊,0才可以省略不写。

这其实又呼应了上一章节的反向倒数序号,f的右下侧角标其实是0,再次验证这种抽象模型的合理性。再好好看看这个模型,记住它。

如果你观察得很仔细,前面的蓝色注释里括号内的部分,正是每次省略冒号的默认值。

第二个冒号后的数字是步长,它决定了前面所得到的子串 是从第一个开始第n个作为下一个。

默认是1,就意味着,0:4首先取到前4个字符abcd,然后每+1个序号,取一个,直到都取完,那默认就是abcd,没有变化。

如果是题目中的步长为2,那么就是取得到的abcd的第0位,第0+2位,第0+2+2位(此位不存在,不再往后累加2),那么得到的是ac,你懂了。


网站名称:记忆python函数 python记数函数
分享网址:http://cdweb.net/article/higgjo.html