
- 一、lambda匿名函数
- 1.定义
- 2.注意
- 二、高阶函数map
- 1.定义
- 2.map函数实现
- 三、reduce累计函数(数字,字符串)
- 1.定义
- 2.注意
- 3.实现阶乘
- 四、filter用法
- 1.定义
- 2.过滤纯数字
- 五、列表排序sort(key属性设置)和lambda的使用
一、lambda匿名函数 1.定义
lambda 形参1,形参2…:[单行表达式]或函数调用
2.注意- lambda参数列表外没有括号
- 没有函数名
- 只能实现简单的表达式计算或函数调用(eg:map(func,list))
- 不能使用循环
- 可以用三目运算符
lambda m, n: m if m > n else n
map(数学函数,列表)会根据提供的函数对指定序列做映射
2.map函数实现def map(func, m_list):
all_list = []
for i in m_list:
result = func(i)
all_list.append(result)
return all_list
new_list = map(lambda x: x**2, [1,2,3,4])
for j in new_list:
print(j)
三、reduce累计函数(数字,字符串)
1.定义
reduce()函数会对参数序列中元素进行累计
2.注意reduce不能直接使用,需要导入模块 functools
my_list = list('hello')
result = functools.reduce(lambda x1,x2: x1 + x2,my_list)
result = functools.reduce(lambda x1,x2: x1.upper() + x2.upper(),my_list)
print(result)
3.实现阶乘
my_list = [1,2,3,4,5]
result = functools.reduce(lambda n1,n2:n1*n2,my_list)
print(result)
四、filter用法
1.定义
用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象,如要转换成列表,用list()进行转换
2.过滤纯数字my_list = ['123','avc','12b','-ds','-23','234']
num_list = filter(lambda s: s.isdigit(),my_list)
for s in list(num_list):
print(s)
五、列表排序sort(key属性设置)和lambda的使用
sort方法不能对字典起作用,需要设置属性key
my_list = [{'id':1,'name':'tom','age' : 12},{'id':3,'name':'som','age' : 12},{'id':2,'name':'tom','age' : 12}]
my_list.sort(key=lambda d : d['name'],reverse=True)
print(my_list)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)