当前位置: 首页 > news >正文

纯静态网站制作网建

纯静态网站制作,网建,椒江做阿里巴巴网站的公司,网站建设电话销售开场白Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数) 目录 Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数)一、匿名函数的定义二、匿名函数的特征三、匿…

Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数)

目录

  • Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数)
    • 一、匿名函数的定义
    • 二、匿名函数的特征
    • 三、匿名函数的常见用法
        • 1、命名后调用
        • 2、直接调用
        • 3、将 Lambda 函数作为参数传递给其他函数(一般赋予 key 参数)
        • (1)max() 函数
        • (2)sorted() 函数

一、匿名函数的定义

Lambda 函数是函数式编程中的核心概念之一。Python 提供了一种简单的方法来定义 lambda 函数。匿名函数可以在不定义函数的情况下通过一行代码实现高效的函数功能。匿名函数可以在表达式中直接使用,非常方便。匿名函数的语法格式如下:

lambda [arguments] : expression

说明:

(1)arguments:形参列表,多个形参用逗号隔开,也可以不带参数。

形参列表的形式如下:

a, b
a=1, b=2
*args
**kwargs
a, b=1, *args

(2)expression:函数返回值的表达式,表达式只能有一个。

表达式的形式如下:

6
a + b
sum(b)
6 if a >10 else 7

(3)lambda 返回值是一个函数的地址,也就是函数对象。

例如:

fadd = lambda x,y:x+y
print(fadd)
print(fadd(3,2))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
<function <lambda> at 0x00000266BFC99EE0>
5

二、匿名函数的特征

(1)Lambda 函数是匿名的

所谓匿名函数,通俗地说就是没有名字的函数。

(2)Lambda 函数有输入和输出

输入是传入到参数列表 [arguments] 的值,输出是根据表达式 expression 计算得到的值。

(3)Lambda 函数拥有自己的命名空间

不能访问自己参数列表之外或全局命名空间里的参数,只能完成非常简单的功能。

常见的 Lambda函数示例:

lambda x, y: x+y			# 函数的输入为x和y,输出是它们的和:x+y
lambda *args: sum(args)		 # 输入是任意个数参数,输出是它们的和
lambda **kwargs: 6			# 输入是任意键值对参数,输出是6

三、匿名函数的常见用法

1、命名后调用

如果我们只需要一个简单的函数,lambda 是一个很好的选择,可以被看作是定义函数的一种更简单的方法。我们可以给它一个名称,并像普通函数一样使用它。调用的形式如下:

fun_name = lambda arguments : expression
fun_name(arguments)

例如:

fun_perimeter = lambda r:3.14 * r * 2
fun_area = lambda r:3.14 * r ** 2
print("圆的周长:",fun_perimeter(5))
print("圆的面积:",fun_area(5))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
圆的周长: 31.400000000000002
圆的面积: 78.5

2、直接调用

直接调用 lambda 函数的语法格式如下:

(lambda arguments : expression)(arguments)

例如:

print("圆的周长:",(lambda r:3.14 * r * 2)(5))
print("圆的面积:",(lambda r:3.14 * r ** 2)(5))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
圆的周长: 31.400000000000002
圆的面积: 78.5

3、将 Lambda 函数作为参数传递给其他函数(一般赋予 key 参数)

(1)max() 函数

max() 函数返回给定参数的最大值,参数可以为序列。max() 函数的语法格式如下:

max( x, y, z, .... )说明:返回给定参数的最大值

例如:由 Lambda 函数决定是按元组的哪一个值排序。

num = [(100, 2.5), (150, 0.2), (80, 3.4), (120, 1.8)]
y = max(num, key=lambda x: x[0])   # 按元组的第1个值排序取最大值
print(y)
y = max(num, key=lambda x: x[1])   # 按元组的第2个值排序取最大值
print(y)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
(150, 0.2)
(80, 3.4)

(2)sorted() 函数

sorted() 函数对所有可迭代的对象进行排序操作。sorted() 函数的语法格式如下:

sorted(iterable, key=None, reverse=False)
参数说明:
(1)iterable:可迭代对象。
(2)key:指定用来进行比较的元素,指定可迭代对象中的一个元素进行排序。
(3)reverse:排序规则,reverse = True 降序, reverse = False 升序(默认)。
(4)返回值:返回重新排序的列表。

sort 与 sorted 区别:

(1)sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

(2)list 的 sort 方法是对已经存在的列表进行操作。而 sorted 函数返回的是一个新的 list,而不是在原来的基础上进行的操作。

例1:对列表的操作

num = [2,3,22,102,-87,11,-23]
print(sorted(num))  # 升序排列
print(sorted(num,key=lambda x :abs(x)))  # 按绝对值升序排列,参数x接收的是列表的元素
stu = ["Jerry","Mark","tom","Black","zhangping","Liugang","WANGLIN"]
print(sorted(stu))   # 对名字排序(区分大小写)
print(sorted(stu,key=str.lower))   # 对名字排序(转换为小写后排序,即:不区分大小写)
print(sorted(stu,key=lambda x:x.lower()))   # 作用同上
print(sorted(stu,key=lambda x:len(x)))      # 按字符串的长度排序
# 参数x接收的是列表的元素,参数x接收的是列表的元素,参数x接收的是列表的元素
lang = [(11,"java"),(101,"go"),(201,"c"),(17,"vb"),(21,"c++")]
print(sorted(lang,key=lambda x:x[0]))  # 按列表中的元组的第一列排序
print(sorted(lang,key=lambda x:x[1]))  # 按列表中的元组的第二列排序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[-87, -23, 2, 3, 11, 22, 102]
[2, 3, 11, 22, -23, -87, 102]
['Black', 'Jerry', 'Liugang', 'Mark', 'WANGLIN', 'tom', 'zhangping']
['Black', 'Jerry', 'Liugang', 'Mark', 'tom', 'WANGLIN', 'zhangping']
['Black', 'Jerry', 'Liugang', 'Mark', 'tom', 'WANGLIN', 'zhangping']
['tom', 'Mark', 'Jerry', 'Black', 'Liugang', 'WANGLIN', 'zhangping']
[(11, 'java'), (17, 'vb'), (21, 'c++'), (101, 'go'), (201, 'c')]
[(201, 'c'), (21, 'c++'), (101, 'go'), (11, 'java'), (17, 'vb')]

例2:对字典的操作

lang = {11:"java",101:"go",201:"c",17:"vb",21:"c++"}
print(lang)
print(sorted(lang.items(),key=lambda x:x[0]))  # 按字典的 key 排序
print(sorted(lang.items(),key=lambda x:x[1]))  # 按字典的 value 排序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{11: 'java', 101: 'go', 201: 'c', 17: 'vb', 21: 'c++'}
[(11, 'java'), (17, 'vb'), (21, 'c++'), (101, 'go'), (201, 'c')]
[(201, 'c'), (21, 'c++'), (101, 'go'), (11, 'java'), (17, 'vb')]
http://www.hkea.cn/news/515932/

相关文章:

  • 瓮安建设局网站google play三件套
  • 大型门户网站模板营销神器
  • 学设计的网站都有哪些seo和sem
  • 如何做网站流量买卖营销型网站的特点
  • 装修设计网站哪个平台最好软文推广多少钱一篇
  • 怎么做微信里的网页网站链接网站设计平台
  • 长宁专业做网站网络营销案例分享
  • 哈尔滨专业建网站哪家好码迷seo
  • 涞水县住房和城乡建设局网站厦门seo专业培训学校
  • 网站建设销售招聘德阳seo
  • 平台网站建设的公司seozou是什么意思
  • wordpress 相册 主题seo整站优化技术培训
  • 做窗帘网站图片百度自动点击器下载
  • 飘雪影视大全免费观看视频快推达seo
  • 做网站的装饰标语seo宣传网站
  • 国外 平面设计 网站百度收录
  • 做网站话术简述搜索引擎的工作原理
  • 现在建设网站赚钱吗seo外链论坛
  • 青海网站建设企业海南百度竞价推广
  • 南京做网站yuanmus电脑突然多了windows优化大师
  • 美国做deals的网站软文营销经典案例优秀软文
  • 招标网站怎么做吴江seo网站优化软件
  • 苏州建设工程协会网站seo去哪里学
  • 上海正规网站制作价格可口可乐软文营销案例
  • 番禺网站 建设信科网络站长之家ping
  • 建筑工程施工承包合同关键词优化报价推荐
  • 网站可以免费看企业网站系统
  • 中华人民共和国建设部网站seo怎么快速提高排名
  • 南宁做网站的有几家东莞网络营销网站建设
  • 苏州知名网站建设开发新区seo整站优化公司