gpt4 book ai didi

Python3匿名函数lambda介绍与使用示例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python3匿名函数lambda介绍与使用示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

概述 。

匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值),表达式本身结果就是返回值,而def创建后则赋值给一个变量名,在python中,我们利用关键词lambda创建匿名函数,以下是匿名函数lambda表达式的形式:

lambda arg1,arg2,.....argn:expression 。

以下为一些lambda的特点:

  • lambda 是一个表达式,而不是一个语句,即我们可以在任何可以使用表达式的场景一样使用lambda。
  • lambda 的主体也是一个表达式,即和def定义的函数一样,lambda也有函数主体,不过lambda的主体仅仅是一个表达式,所以其使用的功能受到较大的限制。

lambda使用 。

无参匿名函数 。

?
1
2
3
4
5
6
7
8
# 可以将lambda直接传递给一个变量,像调用一般函数一样使用
b = lambda :true
print (b())
 
# 等价于
def bf():
  return true
print (bf())

示例结果:

true true 。

有参匿名函数 。

支持多个参数 。

参数无默认值 。

?
1
2
3
4
two_sum = lambda x, y: x + y
# 等同于:
def two_sum(x, y): return x + y
print (two_sum( 1 , 2 ))

示例结果:

3 。

参数带默认值 。

?
1
2
3
4
sum_with_100 = lambda x, y = 100 : x + y
# 等同于:
def sum_with_100(x, y = 100 ): return x + y
print (sum_with_100( 200 ))

示例结果:

300 。

从后面传参 。

之前的示例我们将lambda匿名函数赋值一个变量,通过类似def定义的函数的方式传参,我们可以在lambda后面直接传递参数:

?
1
2
two_sum = ( lambda x, y: x + y)( 3 , 4 )
print (two_sum)

示例结果:

7 。

嵌套使用 。

将lambda嵌套到普通函数中,lambda函数本身做为return的值,构建简单的闭包 。

?
1
2
3
4
5
def sum (x):
  return lambda y: x + y
sum_with_100 = sum ( 100 )
result = sum_with_100( 200 )
print (result)

示例结果:

300 。

一些使用实例 。

1. 结合三元表达式求两值中最小值 。

?
1
2
lower = lambda x,y: x if x<y else y
print (lower( 7 , 100 ))

实例结果:

7 。

2. 对字典某一键值进行排序 。

?
1
2
3
4
d = [{ "order" : 3 },{ "order" : 1 },{ "order" : 2 }]
# 根据order键值排序
d.sort(key = lambda x:x[ 'order' ])
print (d)

实例结果 。

[{'order': 1}, {'order': 2}, {'order': 3}] 。

总结 。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我的支持.

原文链接:https://juejin.im/post/5cdd63926fb9a032086df43e 。

最后此篇关于Python3匿名函数lambda介绍与使用示例的文章就讲到这里了,如果你想了解更多关于Python3匿名函数lambda介绍与使用示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com