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)
>>>
lambda表达式
map(), filter()函数复习 lambda 是一个表达式,而非语句,所以它能够出现在 Python 语法不允许 def 语句出现的地方
lambda 表达式可与 map() 和 filter() 函数配合使用 卡打
滴滴滴~打卡{:10_298:} 打卡
放平心态 每天进步一点点 Learning...{:10_257:} 本帖最后由 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")) 2023第一弹{:10_298:} 打卡 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()))
为什么这样行不通??
打卡 卡打 特工小队 发表于 2022-1-19 08:18
放平心态
心态放平 本帖最后由 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