Python 内置函数用法
Python中map()、filter()、reduce()这三个都是应用于序列的内置函数
map() 函数是Python中内置的高阶函数
格式为: map(function, iterable)
function---->函数 简单的运算可以使用匿名函数
iterable----->可迭代对象
map () 就是将 function 函数序列中的每一个元素调用 function函数 并返回包含每次 function 函数返回值的新列表
num1 = [1,2,3,4,5] def map_test(gs,dx): str = [] for i in dx: stt = gs(i) str.append(stt) return str print (map_test(lambda x:x+1,num1)) print(list(map(lambda x : x+1,num1)))#运行结果相同
filter()函数
格式为:filter(函数,可迭代对象) filter函数会将可迭代对象依次for循环遍历 将可迭代对象的每个元素进行处理如果结果为True,则保留这个值
li = ['sb_alex','sb_xiaohong','Toom','sb_xiaoming'] def filter_test(cs,bl): li1 = [] for i in bl: if not cs(i): li1.append(i) return (li1) print (filter_test(lambda x:x.startswith('sb'),li)) print(list(filter(lambda x:not x.startswith('sb'),li)))#运行结果一样
reduce()函数 是合并一个序列,将序列的元素压在一起得到一个结果
格式为: reduce(函数,可迭代对象,默认基值)
li = [1,2,3,4] def reduce_test(cs,xl,init = 10):#当有初始值时需要添加一个判断语句 if init is None: res = xl.pop(0) else: res = init for i in xl : res = cs(res,i) return (res) print (reduce_test(lambda x,y:x*y,li)) #初始值是最先开始计算的值 init = 10时 函数最先计算10*1 否则就是1*2 print (reduce(lambda x,y:x*y,li,10))
1 map()函数是 处理序列中的每个元素 ,得到一个结果是“列表”(迭代器形式),该列表元素个数与原来一致 2 3 filter()函数是 遍历序列中的每个元素,判断每个元素得到的布尔值,如果结果为True则留下来 4 5 reduce()函数是 处理一个序列,然后把序列进行合并操作