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

Python 之内置函数:filter、map、reduce、zip、enumerate,第1张

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

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的index函数可以获取列表中值的第一个索引。

list= [1,2,3,4,5,1,2,2]

listindex(2) >>>>>>>> 1

如果要获取相同值的最后一个索引:

len(list) - list[::-1]index(2) - 1

反向取得list后,用list的长度减去反转后出现的第一个索引再减1

1、python使用zipfile模块压缩和解压ZIP文件

2、读取zip文件

首先,通过zipfile模块打开指定zip文件,如:

zpfd = zipfileZipFile(path, mode='r')

对于zipfile,其标志与open所用的打开文件标志有所不同,不能识别 'rb'。

然后,读取zip文件中的内容,zipfile对象提供一个read(name)的方法,name为zip文件中的一个文件入口,执行完成之后,将返回读出的内容,如:

for filename in zpfdnamelist():

tmpcont = zpfdread(filename)

print 'len(tmpcont)', 'tmpcont'

需要注意的是,读取zip文件时,只能读取内容

3、写入zip文件

首先,需要zipfile模块写打开或创建zip文件,如:

zpfd = zipfileZipFile(path, mode='w')

写打开是标志可以为'w'或'a'('a'表示写入一个zip文件), 或者传入第三个参数cmopression压缩标志

compression=zipfileZIP_DEFLATED 需要导入zlib模块

compression=zipfileZIP_STORED则表示只对文件进行打包,并不压缩

入有两种方式,一种是直接写入一个已经存在的文件,可使用zipfile对象中write(filename, arcname,

compress_type)第一个参数为文件名,第二个参数指写入zip文件中的文件名,默认与filename一致,第三个参数压缩标志可以覆盖打开

zipfile时的使用参数;另一种是写入一个字符串,可使用zipfile对象中的writestr(zinfo_or_arcname,

bytes),第一个参数是zipinfo对象或写到zip文件中的压缩名,第二个参数是待写入的字符串

4、最后,对于打开的zipfile对象需要进行关闭,从而使得写入内容真正写入磁盘,即:

zpfdclose()

a=[1,2,1,2,1,21,2,1]

index=[]

for i in range(len(a)):

if a[i]==1:

indexappend(i)

print index

以上就是关于Python 之内置函数:filter、map、reduce、zip、enumerate全部的内容,包括:Python 之内置函数:filter、map、reduce、zip、enumerate、python的index函数,获取最后一个、python怎样压缩和解压缩ZIP文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10152740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存