码迷,mamicode.com
首页 > 其他好文 > 详细

匿名函数

时间:2018-08-15 17:43:14      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:lam   iter   函数   匿名函数   for   匿名   分派   bsp   eve   

1, lambda 匿名函数
lambda 参数: 返回值

函数名统一都叫lambda.

def func(n):
    return n * n
ret = func(9)
print(ret)
 # 匿名函数, 语法: lambda 参数: 返回值
a = lambda n : n * n
ret = a(9)
print(ret)
b = lambda x: x+1

 

2, sorted() 排序函数
排序函数
sorted(iterable, key, reverse)
key: 排序规则.
运行流程: 把可迭代对象中的每一个元素交给后面key函数来执行.
得到一个数字(权重). 通过这个数字进行排序

lst = [
    {‘name‘:"amber","age":48},
    {"name":"icy",‘age‘:38},
    {"name":"tony","age":39},
    {"name":"snow","age":32},
    {"name":"toky","age":28}
    ]
print(sorted(lst,key=lambda a:a[‘age‘]))  #key和lambda匿名函数搭配使用

 

3. filter() 过滤函数
filter(function, iterable)
把可迭代对象中的每一个元素交给前面的函数进行筛选. 函数返回True的保留,返回False的过滤掉

lst = ["张无忌", "张铁林", "赵一宁", "石可心","马大帅"]
#除掉姓张的
def func(el):
    if el[0] == ‘张‘:
        return False # 不想要的
    else:
        return True # 想要的
#下面使用匿名函数
f =filter(lambda a:a[0]!=‘张‘,lst) # 将lst中的每一项传递给func, 所有返回True的都会保留, 所有返回False都会被过滤掉
print("__iter__" in dir(f)) # 判断是否可以进行迭代
for e in f:
    print(e)

  

4. map() 映射函数
map(function, iterable)
把可迭代对象中的数据交给前面的函数进行执行. 返回值就是map的处理结果

 m = map(lambda el: el**2, lst) # 把后面的可迭代对象中的每一个元素传递给function, 结果就是function的返回值
print(list(m))处理

海量数据,分派任务,分而治之

map(func1, map(func2, map(func3 , lst)))

  

匿名函数

标签:lam   iter   函数   匿名函数   for   匿名   分派   bsp   eve   

原文地址:https://www.cnblogs.com/amber-liu/p/9482691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!