lambda表达式

#官方给出的格式要求如下,其实不需要有两个或两个以上的参数,一个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)...这样麻烦的写法

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

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

  这个还是特别好用的,如果是经常写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 @ 2023-07-23 15:44  soccerchen  阅读(32)  评论(0)    收藏  举报