匿名函数及sort方法的参数key

匿名函数

def add(a, b):
    return a + b
  • 此类简单函数可以使用lambda表达式简写,如下:
lambda a,b: a+b
  • 一方面lambda可以当做是一个函数,将其赋值给一个变量,那个变量就可以当成一个函数使用(但不常用),举例如下:
add = lambda a, b: a + b
print(add(3, 2))

这样就可以计算a与b的和

  • 最常用的是将lambda表达式当做一个参数进行传递,举例应用场景如下:
def cal(a, b, fn):  # 对两个数进行运算
    s = fn(a, b)
    return s


def add(a, b):  #计算和
    return a + b


def sub(a, b):  #计算差
    return a - b
  • 当不确定运算规则时,可以将函数作为参数传递,这样一个函数就可以同时具有多种运算的功能
  • add方法和sub函数比较简单,这个时候就可以用lambda表达式来代替,如下:
cal(3, 2, lambda a, b: a + b)

sort方法的参数key

nums = ['to', 'see', 'a', 'world', 'in', 'a', 'grain', 'of', 'sand']
nums.sort()
print(nums)

运行结果:
在这里插入图片描述

nums = ['to', 'see', 'a', 'world', 'in', 'a', 'grain', 'of', 'sand']
nums.sort(key=len)
print(nums)

运行结果:
在这里插入图片描述
当key参数为len时,就会按照长度排序,我们知道这个参数是一个函数

当列表元素为字典时,默认参数无法排序

students = [{'name': '张三', 'age': 15, 'height': 173},
            {'name': '李四', 'age': 13, 'height': 168},
            {'name': '王五', 'age': 18, 'height': 188},
            ]

students.sort()
print(students)

在这里插入代码片
这个时候排序会报错

students = [{'name': '张三', 'age': 15, 'height': 173},
            {'name': '李四', 'age': 13, 'height': 168},
            {'name': '王五', 'age': 18, 'height': 188},
            ]


def fn(ele):
    return ele['age']


students.sort(key=fn)
print(students)

当传入一个函数参数的时候
在这里插入图片描述
就可以按照指定的参数排序,这个时候可以使用lambda作为参数传入

students.sort(key=lambda ele: ele['age'])
print(students)

这样效果一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值