# 函数式编程 # 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)))