函数式编程

这里主要介绍map,reduce,sorted,filter的使用

1.map:是一种映射,不改表原来的列表,而是返回一个新的列表

格式:map(函数,可迭代对象)

eg:

def get_sum(n):
'''
定义一个列表求和
'''
ret=0
for i in n:
ret +=i
return ret
nums = [
[1,3,4],
[2,4,5],
[2,4,8]
]
print(list(map(get_sum,nums)))
结果为:[8, 11, 14]

2.reduce,合并,在python3中,需要导入from functools import reduce

格式reduce(函数,可迭代对象)

eg:

def get_sum(x,y):
'''
定义一个reduce求和
'''
return x+y
from functools import reduce
nums =[1,2,3,4,5,6,7]
print(reduce(get_sum,nums))
#结果为:28

3.sorted 排序

格式sorted(可迭代对象,key=自定义函数)

students = [
{"name":'eric',"score":[70,50,40]},
{"name":'ben',"score":[70,90,40]},
{"name":'gavin',"score":[70,100,189]}
]

def get_score_sum(a,b):
return sum(a['score']) - sum(b['score'])
from functools import cmp_to_key
print(sorted(students,key=cmp_to_key(get_score_sum),reverse=True)) #倒序

4.filter,过滤信息

格式filter(函数,可迭代对象)

a =  ['sb','***','flg','xxx','+1秒']
b = [ 'sb','***','flg','hello','python', 'xxx','+1秒']
print(list(filter(lambda x:x not in a,b)))
#结果为:['hello', 'python']
posted @ 2018-11-08 14:14  茶色阳光  阅读(143)  评论(0编辑  收藏  举报