小甲鱼 发表于 2022-1-13 23:27:14

已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览 购买主题

特工小队 发表于 2022-1-19 08:18:14

放平心态

小古比鱼 发表于 2022-4-9 10:15:04

lambda表达式也称匿名函数,是一种比较特殊的函数实现方式,也是“一行流”代码的核心与常客。lambda表达式语法简练,像一个极致精简后的函数,其本质是一个表达式,因而可以用在常规函数不可能存在,即不允许def语句出现的地方(如放在列表中,或作为map()、filter()等函数的第一个参数),这也是lambda表达式最大的优势所在!然而,由于所有的功能代码都局限在一个表达式中去实现,lambda表达式通常也只能实现较为简单的需求。事实上,lambda表达式也常被用于去做简单的工作,与定义复杂函数的def语句相对应。总体来看,在恰当的地方使用lambda表达式利大于弊,值得提倡!

fishcyou 发表于 2022-5-3 11:17:59

分享案例中的代码:
def squareX(x):
    return x ** 2

squareX(3)
>>>
9

squareY = lambda y : y ** 2
squareY(3)
>>>
9

由于lambda是一个表达式,它就可以用在很多常规函数无法应用的地方。

y =
y(5)
>>>
25

# 实际开发中,不推荐这样写!

有了lambda,很多时候我们就可以简化我们的代码,比如:

def _(x):
    return ord(x) + 10

list(map(_, "Python"))
>>>

# 可以用lambda简写上面的代码
maped = map(lambda x : ord(x) + 10, "Python")
list(maped)
>>>

KinokoCC 发表于 2022-5-29 19:13:57

lambda表达式
map(), filter()函数复习

炎凉来寻 发表于 2022-9-8 10:52:46

lambda 是一个表达式,而非语句,所以它能够出现在 Python 语法不允许 def 语句出现的地方
lambda 表达式可与 map() 和 filter() 函数配合使用

chenjinchao 发表于 2022-10-11 15:55:52

卡打

墨墨在努力吖 发表于 2022-10-14 16:18:51

滴滴滴~打卡{:10_298:}

CDra 发表于 2022-10-21 14:54:25

打卡

lymbwx 发表于 2022-10-25 18:06:23

放平心态

lymbwx 发表于 2022-11-1 18:55:56

每天进步一点点

migu_sm1 发表于 2022-11-7 19:54:54

Learning...{:10_257:}

lxping 发表于 2022-11-11 12:32:26

本帖最后由 lxping 于 2022-11-11 12:34 编辑

在第3点中的代码发现错误,具体如下:
list(mapped = map(lambda x : ord(x) + 10, "FishC"))
TypeError: list() takes no keyword arguments

应为:
list(map(lambda x : ord(x) + 10, "FishC"))

呱呱呱i 发表于 2023-1-2 17:39:08

2023第一弹{:10_298:}

andyleesh 发表于 2023-1-3 20:52:56

打卡

Arrin 发表于 2023-3-12 10:24:49

power = {"吕布":999, "关羽":888, "刘备":666, "张飞":900, "赵云":789, "不二如是":999}
   
# 请 lambda 表达式和 filter() 函数配合,替换下面的代码
greater = []
for k, v in power.items():
    if v > 800:
      greater.append((k,v))
# 请 lambda 表达式和 filter() 函数配合,替换下面的代码
   
print(greater)
[('吕布', 999), ('关羽', 888), ('张飞', 900), ('不二如是', 999)]


greater = list(filter(lambda k,v : v>800, power.items()))
为什么这样行不通??

FengHL 发表于 2023-4-20 11:55:19

打卡

中英文泡椒 发表于 2023-8-31 16:53:03

卡打

中英文泡椒 发表于 2023-9-8 17:45:26

特工小队 发表于 2022-1-19 08:18
放平心态

心态放平

PossibleWL 发表于 2023-10-31 08:29:16

本帖最后由 PossibleWL 于 2023-10-31 09:17 编辑

Arrin 发表于 2023-3-12 10:24
power = {"吕布":999, "关羽":888, "刘备":666, "张飞":900, "赵云":789, "不二如是":999}
   
# 请 lam ...

TypeError: <lambda>() missing 1 required positional argument: 'v'
你看type error就明白,lambda定义了参数k、v两个参数,其中k是后者power.items()的元组返回,实际左侧缺少一个lambda右侧定义的v函数相关的位置参数V。
页: [1] 2
查看完整版本: 第047讲:函数(VII)- lambda表达式