python基础之函数

一、匿名函数

形如lambda x:x+1的即为匿名函数,使用方法如:function=lambda x:x+1,print(function(10)),可以输出11

二、map函数

内置的map函数实现函数自编程功能,即可将函数作为参数并调用,可快速实现对一组数据(如列表)的处理(处理方式为调用的函数)

 

#lambda x:x+1
def add_one(i):#不同的列表元素处理需求可定义为函数
    return  i+1

#lambda x:x-1
def mius(i):
    return  i-1




# def map_test(num_1):#也可以将函数名作为参数传递进来,从而调用
#     ls = []
#     for i in num_1:
#         res=add_one(i)
#         ls.append(res**2)
#     return  ls

# def map_test(func,num_1):
#     ls = []
#     for i in num_1:
#         res=func(i)
#         ls.append(res**2)
#     return  ls

num_1=[1,2,5,7,10]
# print(map_test(lambda x:x+1,num_1))

#内置的map函数即实现上述功能
print(map(lambda x:x+1,num_1))#返回对象地址
print(list(map(lambda x:x+1,num_1)))#list转换成列表

#不一定非得列表,只要是可迭代对象就行
ls='linhaixueyuan'
print(list(map(lambda x:x.upper(),ls)))

 

三、filter函数

filter函数与map函数使用形式是一样的,参数是函数名和可迭代对象,顾名思义过滤出(或者过滤掉有某些特征的元素)

 

#filter函数与map函数使用形式是一样的,参数是函数名和可迭代对象,顾名思义过滤出有某些特征的元素
#以下为filter具体实现
movie_people=['sb_alex','sb_wupeiqi','sb_yuanhao','linhaifeng']



# def filter_test(array):
#     ret=[]
#     for p in array:
#         if not p.startswith('sb'):#可以将此行编辑成函数,从而调用
#             ret.append(p)
#     return  ret

# def starts_test(n):
#     return n.startswith('sb')#也可以使用匿名函数
#
# def filter_test(func,array):
#     ret = []
#     for p in array:
#         if not func(p):  # 将此行弄成通用的函数
#             ret.append(p)
#     return ret
#
# print(filter_test(starts_test,movie_people))

#filter函数
print(list(filter(lambda n:not n.startswith('sb'),movie_people)))#not更改布尔值 ,逻辑变成否,不加Not则输出以sb开头的元素

 四、reduce函数

将序列中的元素处理后得到一个结果输出

#reduce函数实现
# num_l=[1,2,3,1000]
#
# def reduce_test(func,array,init=None):#init为初始赋值,默认没有
#     if init is None:
#         res = array.pop(0)  # 取第一个元素值
#     else:
#         res=init
#     for i in array:
#         res=func(res,i)
#     return res
#
# print(reduce_test(lambda x,y:x*y,num_l))

#reduce函数:将序列处理后得到一个结果
from functools import reduce
num_l=[1,2,3,1000]
print(reduce(lambda x,y:x+y,num_l))#这里不设置初始值

 

 

 

posted @ 2019-06-09 21:01  czmir  阅读(153)  评论(0编辑  收藏  举报