博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中的四个BIF:filter()、map()、zip()、enumerate()
阅读量:4203 次
发布时间:2019-05-26

本文共 1678 字,大约阅读时间需要 5 分钟。

一,filter()

过滤器

先来看下Python自己的注释如下:

help(filter)class filter(object) |  filter(function or None, iterable) --> filter object |   |  Return an iterator yielding those items of iterable for which function(item) |  is true. If function is None, return the items that are true....

大概意思是:filter有两个参数。第一个参数可以是一个参数也可以是None,如果是一个函数的话,则将第二个可迭代数据里的每一个元素作为函数的参数进行计算,把返回的True的值筛选出来;如果第一个参数为None,则直接将第二个参数中为True的值筛选出来。

实例如下:

temp = filter(None,[200,-9,0,True,False])print(list(temp),type(temp))#-----output-------------------------[200, -9, True] 
# 尝试写一个筛选基数的过滤器:def odd(x):    return x % 2temp = filter(odd,range(10))print(list(temp),type(list))# 如果使用 lambda 函数来操作,效果如下:list(filter(lambda x :x%2,range(10)))#-----output--------------------------[1, 3, 5, 7, 9] 

二,map()

映射

map()找个内置函数也有两个参数,仍然是一个参数和一个可迭代序列,将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列每个元素都加工完毕,返回所有加工后的元素构成的新序列。

list(map(lambda x :x*2),range(10))

三,zip()

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

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

a = [1,2,3]b = [4,5,6]c = [7,8,9,10,11]zipped = zip(a,b) zipped_list = list(zipped)print(zipped,zipped_list)zipped = zip(a,c) zipped_list = list(zipped)print(zipped,zipped_list)#-----output--------------------------
[(1, 4), (2, 5), (3, 6)]
[(1, 7), (2, 8), (3, 9)]

四,enumerate()

枚举

enumerate()方法生成由二元组(二元组就是元素数量为二的元组)构成的一个迭代对象,每个二元组是由可迭代参数的索引号以及对应的元素组成的。

str1 = "nihui"for each in enumerate(str1):    print(each)    #-----output--------------------------(0, 'n')(1, 'i')(2, 'h')(3, 'u')(4, 'i')

五,lambda表达式

Python 允许使用 lambda 关键字来创建匿名函数。

具体实例如下:

# 正常函数定义如下: def ds(x):    return 2 * x + 1 res = ds(5)# lambada 定义如下: ds = lambda x : 2 * x + 1 res = ds(5)

转载地址:http://ysili.baihongyu.com/

你可能感兴趣的文章
MyBatis之SqlSessionFactoryBuilder
查看>>
查看linux服务器配置信息
查看>>
Java集合-HashMap源码
查看>>
rabbitmq交换机类型
查看>>
DOS命令列举
查看>>
MyBatis之Transaction
查看>>
1.idea中Maven创建项目及2.对idea中生命周期的理解3.pom文件夹下groupId、artifactId含义
查看>>
在idea中创建Maven项目常见错误
查看>>
在Linux虚拟机上安装MySQL遇到的错误
查看>>
Spring常见错误
查看>>
SSM第三阶段整理
查看>>
什么时候用resultMap,什么时候用resultType?
查看>>
广二师校外访问知网
查看>>
Arduino配置ESP32开发环境(免运行get.exe)
查看>>
会声会影2018、2019版启动提示未注册的解决方法
查看>>
一键下载淘宝买家秀图片(win10)
查看>>
NetBeans IDE 中国教育考试版 (2007)运行界面空白解决方法(计算机二级java)
查看>>
全国计算机等级考试 二级java官方教材 纠错勘误 (非官方)
查看>>
PhotoshopCC 使用透视剪裁工具时提示:无法使用透视剪裁工具因为图像包含不受支持的图层类型?
查看>>
LeetCode-栈|双指针-42. 接雨水
查看>>