lambda表达式

1
2
3
4
5
6
7
8
#官方给出的格式要求如下,其实不需要有两个或两个以上的参数,一个a也是可以的lambda a, b: a+b#官方给出的例子>>> def make_incrementor(n):
...     return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43

  可以理解为构造了一个简单的函数,比如f = lambda a,b : a+b,就不用写def f(a,b)...这样麻烦的写法

官方给出了一个比较好的应用例子:

1
2
3
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])
pairs<br>#返回的结果是按字符串的排序给出整个列表的排序

  这个还是特别好用的,如果是经常写SQL的人,应该很容易明白,这就相当于指定一列的排序,相当好用,为此我还尝试了一下列表中全是字典是否可以排序,是可以的

a = [{"c1":'a',"c2":'g',"c3":1,"c4":8},{"c1":'c',"c2":'d',"c3":2,"c4":5},{"c1":'e',"c2":'b',"c3":3,"c4":1}]

sorted(a,key=lambda a:a['c4'])
#[{'c1': 'e', 'c2': 'b', 'c3': 3, 'c4': 1},
#{'c1': 'c', 'c2': 'd', 'c3': 2, 'c4': 5},
#{'c1': 'a', 'c2': 'g', 'c3': 1, 'c4': 8}]
sorted(a,key=lambda a:a['c3'])
#[{'c1': 'a', 'c2': 'g', 'c3': 1, 'c4': 8},
#{'c1': 'c', 'c2': 'd', 'c3': 2, 'c4': 5},
#{'c1': 'e', 'c2': 'b', 'c3': 3, 'c4': 1}]

  这就相当好用了,大家可以尝试一下~

参考:4. 更多控制流工具 — Python 3.11.4 文档

posted @   soccerchen  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示