Python_函数_内置函数

Python  map()函数用法

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))

总结

map()函数是 处理序列中的每个元素 ,得到一个结果是“列表”(迭代器形式),该列表元素个数与原来一致

扫描二维码关注公众号,回复: 753228 查看本文章

filter()函数是 遍历序列中的每个元素,判断每个元素得到的布尔值,如果结果为True则留下来

reduce()函数是 处理一个序列,然后把序列进行合并操作

猜你喜欢

转载自www.cnblogs.com/liutianyuan/p/9033810.html
今日推荐