python匿名函数怎么创建
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容主要讲解"python匿名函数怎么创建",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python匿名函数怎么创建"吧!前言在定义函数的时候,不想给
千家信息网最后更新 2025年01月19日python匿名函数怎么创建
本篇内容主要讲解"python匿名函数怎么创建",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python匿名函数怎么创建"吧!
前言
在定义函数的时候,不想给函数起一个名字。这个时候就可以用lambda来定义一个匿名函数
语法:
变量名= lambda 参数:表达式(block)
参数:可选,通常以逗号分隔的变量表达式形式,也就是位置参数
表达式:不能包含循环、return,可以包含if…else…
注意:
1.表达式中不能包含 循环,return.可以包含 if…else…语句.
2.参数可有可无,如果有多个参数,使用逗号隔开
3.表达式计算的结果直接返回
一、创建一个匿名函数:
func = lambda: 3 > 2ret = func() # 调用匿名函数,变量名(),使用变量ret来接收表达式返回的内容print(ret) #Truedef func(): return 3 > 2ret = func()print(ret) #True# 和func=lambda :3>2 等价
运行结果:
TrueTrue
二、创建一个带参数的匿名函数
def func(x, y): return x + yret = func(1, 2)print(ret) #3#匿名函数func = lambda x, y: x + yret = func(1, 2) # 如果匿名函数有参数,调用匿名函数的时候需要传递实参。print(ret) #3
三、求两个数的中的最大的值
def func(x, y): if x < y: return y else: return xret = func(30, 20)print(ret) #30#匿名函数func = lambda x, y: y if x < y else x# 注意if和else 没有 : 不能换行,if判断体写在判断条件前面ret = func(11, 2)print(ret) #11func = lambda x, y: y if x < y else x
四、练习题:
1.将add()方法改成匿名函数
def add(x, y): return x + y func = lambda x, y: x + yret = func(1, 2)print(ret) # 3
2.使用 max函数求字典的最大值
dic = {'k1': 10, 'k2': 200, 'k3': 20}ret = max(dic) # 默认比较的是字典的key的大小。ASCII对于的十进制print(ret) # k3def func(key): return dic[key]ret = max(dic, key=func) # 改变比较规则,用value比较大小,最终返回的函数是字典的key值print(ret) # k2使用匿名函数ret = max(dic, key=lambda x: dic[x]) print(ret) #k2
3、根据列表中字典'name'对应的valuez值进行比较
lst = [ {'name': 'egon', 'price': 100}, {'name': 'rdw', 'price': 666}, {'name': 'zat', 'price': 1} ] # ret = max(lst) # 报错,字典之间不能比较。 # print(ret) def max_name(dic): return dic['name'] # 返回 字典 name对应的值 ret = max(lst, key=max_name) # 指定比较内容 print(ret) 使用匿名函数进行比较: ret = max(lst, key=lambda dic: dic['name']) # 指定比较内容 print(ret)
运行结果:
{'name': 'zat', 'price': 1}{'name': 'zat', 'price': 1}
同理可以根据列表中字典'price'对应的valuez值大小进行比较
lst = [ {'name': 'egon', 'price': 100}, {'name': 'rdw', 'price': 666}, {'name': 'zat', 'price': 1} ] def max_price(dic): return dic['price'] # 返回 字典 price 的值 匿名函数: ret = max(lst, key=lambda dic: dic['price']) # 指定比较内容 100,666,1 print(ret) #{'name': 'rdw', 'price': 666}
4、求 lst 中每一个元素的平方值
lst = [1, 3, 4]def square(num): num2 = num * num return num2ret = map(square, lst) # 迭代器 1,4,16for i in ret: print(i) # 1,9,16 匿名函数:ret = map(lambda num: num * num, lst)for i in ret: print(i) # 1,9,16
5.过滤出列表中的所有奇数:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]def odd(num): if num % 2 == 1: return True else: return Falseret = filter(odd, lst)print(list(ret)) #[1, 3, 5, 7, 9]# 匿名函数:ret = filter(lambda num: True if num % 2 == 1 else False, lst)print(list(ret)) #[1, 3, 5, 7, 9]
6、现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
tup1 = (('a'), ('b'))tup2 = (('c'), ('d'))# [{'a':'c'},{'b':'d'}]ret = zip(tup1, tup2) #(('a','c'),('b','d'))def func(tup): #('a','c') ('b','d') return {tup[0],tup[1]}ret1=map(func,ret)print(list(ret1)) #[{'a': 'c'}, {'b': 'd'}]# 匿名函数:ret2 = list(map(lambda tup: {tup[0]: tup[1]}, ret))print(ret2) #[{'a': 'c'}, {'b': 'd'}]
到此,相信大家对"python匿名函数怎么创建"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
函数
字典
参数
内容
表达式
变量
大小
时候
结果
最大
两个
方法
逗号
学习
循环
运行
实用
更深
可有可无
之间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
交换机和服务器
公众平台服务器怎么修改
网络服务器的安装与配置ftp
计算机3级网络技术真题
集客网络技术支撑南宁招聘
火趣服务器
如何倒入数据库
数据库 查询学生的最高分
网络安全和法治
武汉战歌时代网络技术
软件开发税率是多少小规模
2k的服务器安装
sql数据库操作
余姚嵌入式软件开发系统
数据库恢复简答
清华同方中文系列数据库
网络技术实验软件
苏州服务器应用线束现货
沧州软件开发行业标准
软件开发实习生的工作内容
流量玩mcpe服务器
软件开发质量保证过程的优点
华为网络技术学院什么时候开设
软件开发如何
哪里能看魔兽世界服务器人数
网络舆论与网络安全
第五届丝绸之路网络安全
网络安全问题怎么举报
软件开发部部门工作计划
分析网络安全问题