ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

week8-lambda表达式

week8-lambda表达式 Python lambda 表达式匿名函数✅ 基础语法lambda 参数列表 : 返回表达式lambda关键字参数可以多个用逗号隔开不能写 def、不能写 return冒号后面表达式结果自动返回本质一次性简短匿名函数适合简单计算不能写多行代码示例 1单个参数f lambda x: x * 2 print(f(3)) # 6等价于def f(x): return x*2示例 2多个参数add lambda a,b : a b print(add(2,5)) #7示例 3无参数f lambda : hello print(f())✅ 常用场景搭配高阶函数sorted/map/filter1. sorted 自定义排序考试最高频lst [(1,9), (3,2), (2,5)] #按元组第2个元素排序 res sorted(lst, keylambda x: x[1]) print(res) # [(3, 2), (2, 5), (1, 9)]key指定排序依据lambda x:x [1] 表示取每个元素的第 2 项2. map () 映射nums [1,2,3] res list(map(lambda x:x**2, nums)) print(res) # [1,4,9]###3. filter () 过滤nums [1,2,3,4,5] res list(filter(lambda x: x%20, nums)) print(res) # [2,4]⚠️ 重要考点 限制lambda只能有一个表达式不能写 if 语句块、for 循环、多行代码可以用三元表达式允许f lambda x: 偶数 if x%20 else 奇数 print(f(4))没有函数名所以叫匿名函数可以赋值给变量但不推荐不适合复杂逻辑复杂函数优先用def可以作为函数参数传递最常用一般不单独赋值 易错题下面代码输出func lambda x,y : xy print(func(10,20))答案30错误写法❌lambda x: if x0: print(x) # 不能直接写if代码块 对比def vs lambda表格deflambda有函数名匿名可赋值变量支持多行、循环、分支代码块仅支持单行表达式适合复杂逻辑简短临时逻辑常作 key 参数完整小练习代码# lambda 三元表达式 is_gt5 lambda x: True if x5 else False print(is_gt5(6)) # sorted 字典列表排序 data [{name:A,score:80},{name:B,score:60}] data_sort sorted(data, keylambda d:d[score]) print(data_sort)
返回列表