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']

# 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中的字典元素age小于100的结果,存放到list中
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)))

猜你喜欢

转载自www.cnblogs.com/wjlv/p/10822745.html