python基础===map, reduce, filter的用法
filter的用法:
这还是一个操作表list的内嵌函数
'filter' 需要一个函数与一个list
它用这个函数来决定哪个项应该被放入过滤结果队列中
遍历list中的每一个值,输入到这个函数中
如果这个函数返回True, 那么值就放到过滤结果队列中去
如果这个函数返回 False,那么这个值就会被跳过
#过滤出列表中的4位数元素
def _Filter(x):
return len(str(x))==4
l=[234,343432,34343,2343,234454,6756,76778,8779]
new_l = list(filter(_Filter, l))
print(new_l)
#过滤出列表中的所有奇数
def _Filter(x):
return x %2 != 0
l=[234,343432,34343,2343,234454,6756,76778,8779]
new_l = list(filter(_Filter, l))
print(new_l)
操作 list的内嵌函数
'reduce' 需要一个函数与一个list作为参数
它把该list最终压缩成一个值
函数必须有两个参数作为输入,返回一个值作为输出
‘reduce’ 首先对这个list的头两个元素应用这个函数
然后是对返回值以及list的下一个元素继续应用该函数
以此类推,直到整个list中的值都被遍历到
from functools import reduce
def sum(x, y): return x+y
r = list(range(10))
result = reduce(sum, r)
print(result)
一个操作表list的内嵌函数
'map'需要一个函数与一个list作为参数
这个函数限定为只有一个参数输入一个返回输出
这个函数要依次作用到这个list上的每一个元素
结果作为一个表list返回
from functools import reduce def _map(x): return str(x)+"-map" r = list(range(10)) result = map(_map, r) print(list(result))
>>>['0-map', '1-map', '2-map', '3-map', '4-map', '5-map', '6-map', '7-map', '8-map', '9-map'
纸上得来终觉浅,绝知此事要躬行!