map、filter、reduce函数

# 函数式编程
# map(函数,可迭代对象) #遍历序列中的每个元素,并使用函数执行,返回可迭代结果
# python2 中返回的是list   而在python3中需要使用list转换成列表
li = [1, 2, 5, 6, 3]
print(list(map(lambda x: x + 1, li)))  # 结果[2, 3, 6, 7, 4]

s = 'love you'
print(list(map(lambda x: x.upper(), s)))  # 结果['L', 'O', 'V', 'E', ' ', 'Y', 'O', 'U']
print(''.join(list(map(lambda x: x.upper(), s))))  # 结果为LOVE YOU
# filter(函数,可迭代对象) # 当拿迭代的对象在函数中执行,若返回值为True,则保存函数返回值
print(list(filter(lambda x: x.startswith('o'), s)))  # 结果['o', 'o']

n = [1, 2, 3, 5]

from functools import reduce

# reduce(函数,可迭代对象) #返回一个结果:循环使用函数结果和下一个迭代器进行函数执行
print(reduce(lambda x, y: x + y, n))  # 运行过程为(((1+2)+3)+5)结果为11

pp = [
    {'name': 'zs', 'age': 200},
    {'name': 'ls', 'age': 300},
    {'name': 'ww', 'age': 180},
    {'name': 'aa', 'age': 20},
    {'name': 'bb', 'age': 80}
]


def less_100(n):
    return n.get('age') < 100


# d = {'name': 'ww', 'age': 180}
# print(less_100(d))
print(list(filter(lambda x: less_100(x), pp)))
print(list(filter(lambda x: x['age'] <= 100, pp)))

 

posted @ 2019-05-06 22:51  唐大侠的小迷弟  阅读(185)  评论(0编辑  收藏  举报