python匿名函数

博客介绍了Python中匿名函数(lambda表达式)的相关知识。阐述了其语法,参数列表结构与Python中函数参数列表相同,表达式需在参数中有定义且为单行。还给出了匿名函数作为参数的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语法

匿名函数的另一个别称是lambda表达式

lambda表达式的语法:

lambda argument_list: expression
  • argument_list是参数列表。它的结构与Python中函数(function)的参数列表是一样的。
  • expression是一个关于参数的表达式。表达式中出现的参数需要在argument_list中有定义,并且表达式只能是单行的。

示例

# lambda x: x*x
# 这个lambda表达式实际等同于:
# def f(x):
#   return x*x
In [15]: f = lambda x: x * x

In [16]: f
Out[16]: <function __main__.<lambda>(x)>

In [17]: f(5)
Out[17]: 25
    
In [24]: x2 = lambda *args: [x**2 for x in list(args)]

In [25]: x2(1, 2, 3, 4, 5, 6, 7)
Out[25]: [1, 4, 9, 16, 25, 36, 49]
  • 匿名函数作为参数

    In [7]: s = [x for x in range(10)]
    
    In [8]: s
    Out[8]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    In [9]: s.sort(key=lambda x : abs(x-5))
    
    In [10]: s
    Out[10]: [5, 4, 6, 3, 7, 2, 8, 1, 9, 0]
    In [32]: stus = [
    ...:     {"name": "zhangsan", "age": 18},
    ...:     {"name": "lisi", "age": 19},
    ...:     {"name": "wangwu", "age": 17}
    ...: ]
    
    In [33]: stus.sort(key=lambda x : x["name"])
    
    In [34]: stus
    Out[34]:
    [{'name': 'lisi', 'age': 19},
     {'name': 'wangwu', 'age': 17},
     {'name': 'zhangsan', 'age': 18}]
    
    In [35]: stus.sort(key=lambda x : x["age"])
    
    In [36]: stus
    Out[36]:
    [{'name': 'wangwu', 'age': 17},
     {'name': 'zhangsan', 'age': 18},
     {'name': 'lisi', 'age': 19}]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值