鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 小甲鱼

[知识点备忘] 第047讲:函数(VII)- lambda表达式

[复制链接]
发表于 2024-6-1 12:41:14 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
支持
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-3-19 11:13:50 | 显示全部楼层
加油了,啊啊啊啊啊啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-27 15:17:14 | 显示全部楼层
lambda 就像C语言中的宏
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-3 18:32:52 | 显示全部楼层
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-6-4 17:09:00 | 显示全部楼层
活学活用需要时间~难难难-20250604
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-11-26 12:18:50 | 显示全部楼层
是时候复习filter 和 map 了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-16 23:03:41 | 显示全部楼层
加油
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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


可以这样修改:
  1. power = {"吕布":999, "关羽":888, "刘备":666, "张飞":900, "赵云":789, "不二如是":999}
  2. greater = list(filter(lambda item:item if item[1] > 800 else None, power.items()))
  3. print(greater)
复制代码


结果:
[('吕布', 999), ('关羽', 888), ('张飞', 900), ('不二如是', 999)]

如果替换为map函数:
  1. greater = list(map(lambda item:item if item[1] > 800 else None, power.items()))
复制代码

结果为:
[('吕布', 999), ('关羽', 888), None, ('张飞', 900), None, ('不二如是', 999)]

解释:
  1. lambda item:item if item[1] > 800 else None
复制代码

等价于:
  1. def function(item):
  2.     if item[1] > 800:
  3.         return item
  4.     else:
  5.         return None
复制代码

之所以要item[1]是因为:
power.items()结果为:
dict_items([('吕布', 999), ('关羽', 888), ('刘备', 666), ('张飞', 900), ('赵云', 789), ('不二如是', 999)])
每个参数都是一个元组,取item[1]就是名字后面的数值,例如:
  1. for item in power().items():
  2.     print item[1]
复制代码

结果:999 888 666 900 789 999

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-9 06:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表