本文实例讲述了Python学习笔记之lambda表达式用法。分享给大家供大家参考,具体如下:
Lambda 表达式
使用 Lambda 表达式创建匿名函数,即没有名称的函数。lambda 表达式非常适合快速创建在代码中以后不会用到的函数。
麻烦的写法:
def multiply(x, y): return x * y
使用Lambda之后:
double = lambda x, y: x * y
Lambda 函数的组成部分:
- 关键字 lambda 表示这是一个 lambda 表达式。
- lambda 之后是该匿名函数的一个或多个参数(用英文逗号分隔),然后是一个英文冒号 :。和函数相似,lambda 表达式中的参数名称是随意的。
- 最后一部分是被评估并在该函数中返回的表达式,和你可能会在函数中看到的 return 语句很像。
- 备注:鉴于这种结构,lambda 表达式不太适合复杂的函数,但是非常适合简短的函数。
Lambda 表达式[相关练习]
map()
是一个高阶内置函数,接受函数和可迭代对象作为输入,并返回一个将该函数应用到可迭代对象的每个元素的迭代器。下面的代码使用 map()
计算 numbers 中每个列表的均值,并创建列表 averages, 通过将 mean 函数替换为在 map()
的调用中定义的 lambda 表达式,重写这段代码,使代码更简练。
numbers = [ [34, 63, 88, 71, 29], [90, 78, 51, 27, 45], [63, 37, 85, 46, 22], [51, 22, 34, 11, 18] ] def mean(num_list): return sum(num_list) / len(num_list) averages = list(map(mean, numbers)) print(averages)
使用lambda重写后:
numbers = [ [34, 63, 88, 71, 29], [90, 78, 51, 27, 45], [63, 37, 85, 46, 22], [51, 22, 34, 11, 18] ] averages = list(map(lambda x: sum(x) / len(x), numbers)) print(averages) # [57.0, 58.2, 50.6, 27.2]
filter()
是一个高阶内置函数,接受函数和可迭代对象作为输入,并返回一个由可迭代对象中的特定元素(该函数针对该元素会返回 True)组成的迭代器。下面的代码使用 filter()
从 cities 中获取长度少于 10 个字符的名称以创建列表 short_cities。通过将 is_short 函数替换为在 filter() 的调用中定义的 lambda 表达式,重写这段代码,使代码更简练。
cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"] def is_short(name): return len(name) < 10 short_cities = list(filter(is_short, cities)) print(short_cities)
使用lambda重写后:
cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"] short_cities = list(filter(lambda n: len(n) < 10, cities)) print(short_cities) # ['Chicago', 'Denver', 'Boston']
关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
标签:
Python,lambda表达式
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Python学习笔记之lambda表达式用法详解”评论...
更新日志
2024年10月07日
2024年10月07日
- 群星《前途海量 电影原声专辑》[FLAC/分轨][227.78MB]
- 张信哲.1992-知道新曲与精丫巨石】【WAV+CUE】
- 王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】
- 景冈山.1996-我的眼里只有你【大地唱片】【WAV+CUE】
- 群星《八戒 电影原声带》[320K/MP3][188.97MB]
- 群星《我的阿勒泰 影视原声带》[320K/MP3][139.47MB]
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[320K/MP3][148.91MB]
- 刘雅丽.2001-丽花皇后·EMI精选王【EMI百代】【FLAC分轨】
- 齐秦.1994-黄金十年1981-1990CHINA.TOUR.LIVE精丫上华】【WAV+CUE】
- 群星.2008-本色·百代音乐人创作专辑【EMI百代】【WAV+CUE】
- 群星.2001-同步过冬AVCD【环球】【WAV+CUE】
- 群星.2020-同步过冬2020冀待晴空【环球】【WAV+CUE】
- 沈雁.1986-四季(2012梦田复刻版)【白云唱片】【WAV+CUE】
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[FLAC/分轨][257.88MB]
- 《国语老歌 怀旧篇 3CD》[WAV/分轨][1.6GB]