码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础---匿名函数

时间:2018-10-15 20:30:45      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:transform   函数   div   对象   语言   条件   指定   strong   匿名   

1  为什么要有lambda函数

  在Python语言中除了def语句用来定义函数之外,还可以使用匿名函数lambda,它是Python一种生成函数对象的表达式形式。匿名函数通常是创建了可以被调用的函数,它返回了函数,而并没有将这个函数命名。lambda有时被叫做匿名函数也就是这个原因,需要一个函数,又不想动脑筋去想名字,这就是匿名函数。

 

  语法:

    lambda函数的语法只包含一个语句:   lambda arg1,arg2,.....argn:expression

    lambda 可以无参数,也可以多参数,但是语句只有一个

2  使用场景

  列表的排列函数中:

list_1 = [{"name":"wang","age":10},{"name":"xiaoming","age":20},{"name":"banzhang","age":10}]
infors.sort(key=lambda x:x[age]) #根据age对字典排序
print(infors)

输出:
[{name: wang, age: 10}, {name: banzhang, age: 10}, {name: xiaoming, age: 20}]

list_2=[‘hjkgfdk‘,‘sdfrgr‘,‘gregth‘,‘rewfrwrg‘,‘htht‘,‘qwqw‘]
list_2.sort(key=lambda x:x[2])
print(list_2)

输出
[‘gregth‘, ‘sdfrgr‘, ‘htht‘, ‘hjkgfdk‘, ‘qwqw‘, ‘rewfrwrg‘]

    用在过滤函数中,指定过滤列表元素的条件:

filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9])

输出 
> [3, 6, 9]

  reduce()函数

 

>>>def add(x, y) :            # 两数相加
...     return x + y
... 
>>> reduce(add, [1,2,3,4,5])   # 计算列表和:1+2+3+4+5
15
>>> reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数
15

   用在map()函数中

 

map(lambda x: x+1, [1, 2,3])
> [2, 3, 4]

  

  作为一个函数的参数


def transform(fun,*arg):
return fun(*arg)
print(transform(lambda x,y:x*y,1,8))
输出: 
8

 

 

Python基础---匿名函数

标签:transform   函数   div   对象   语言   条件   指定   strong   匿名   

原文地址:https://www.cnblogs.com/yuanji2018/p/9792504.html

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