python中map()函数,reduce()函数,filter()函数

一、map()是内置的高阶函数,用于对序列内每个元素操作,得到新序列,不改变原序列的值,语法如下:

map(function,list)  

其中 function 是你要对 list 中每个元素操作的函数,list 是你要进行操作的可迭代的数据 (例如   列表,字符串,)

map() 函数会得到一个新的 list 并返回  

例如:list_1=[1,2,3,4,5]

map(lambda x:x+1,list_1)              返回的是一个Iterator,也就是一个惰性序列,需要用 list() 函数获得所有元素值

list(map(lambda x:x+1,list_1))        会得到一个新列表 

>>> list_1=[1,2,3,4]
>>> map(lambda x:x+1,list_1)
<map object at 0x000002895EB0C710>
>>> list(map(lambda x:x+1,list_1))
[2, 3, 4, 5]


# 将字符串数组转换为整数数组
>>> arr = ['1', '2', '3']
>>> list(map(int, arr))

二、reduce()函数是内置函数,用于

reduce()函数需要导入    

from functools import reduce 

reduce(function,list,init)     其中  init 为初始值,可以不写

reduce把一个函数作用在一个 list 序列[x1, x2, x3, ...]上,这个函数必须接收两个参数reduce把结果继续和序列的下一个元素做累积计算。其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

>>> from functools import reduce
>>> num_1=[1,2,3,100]
>>> print(reduce(lambda x,y:x+y,num_1))
106

三、filter()函数是内置函数,用于过滤序列,得到新序列,不改变原序列的值,语法如下:

filter(function,list)

filter是把传入的函数 function 依次作用在 list 中每个元素,然后根据返回值是 True 还是 False 判断是否保留该元素

例如:list_2=['ast','bst','c','dst']
>>> filter(lambda x:x.endswith('st'),list_2)         返回的是一个Iterator,也就是一个惰性序列,需要用 list() 函数获得所有元素值
>>> list(filter(lambda x:x.endswith('st'),list_2))

>>> list_2=['ast','bst','c','dst']
>>> filter(lambda x:x.endswith('st'),list_2)
<filter object at 0x0000028EADEFC710>
>>> list(filter(lambda x:x.endswith('st'),list_2))
['ast', 'bst', 'dst']

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值