Python_匿名函数_47
匿名函数
Eva_J
匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

- #这段代码
- def calc(n):
- return n**n
- print(calc(10))
- #换成匿名函数
- calc = lambda n:n**n
- print(calc(10))

上面是我们对calc这个匿名函数的分析,下面给出了一个关于匿名函数格式的说明
- 函数名 = lambda 参数 :返回值
- #参数可以有多个,用逗号隔开
- #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
- #返回值和正常的函数一样可以是任意数据类型
我们可以看出,匿名函数并不是真的不能有名字。
匿名函数的调用和正常的调用也没有什么分别。 就是 函数名(参数) 就可以了~~~
- 请把以下函数变成匿名函数
- def add(x,y):
- return x+y
- add = lambda x,y:x+y
- print(add(1,2))
上面是匿名函数的函数用法。除此之外,匿名函数也不是浪得虚名,它真的可以匿名。在和其他功能函数合作的时候
- l=[3,2,100,999,213,1111,31121,333]
- print(max(l))
- dic={'k1':10,'k2':100,'k3':30}
- print(max(dic)) # k3 #默认取的是key的最大值
- dic={'k1':10,'k2':100,'k3':30}
- def func(key):
- return dic[key]
- print(max(dic,key=func)) #根据返回值判断最大值,返回值最大的那个参数是结果
- print(dic[max(dic,key=lambda k:dic[k])])
- dic={'k1':10,'k2':100,'k3':30}
def func(key):
return dic[key]
print(max(dic,key=func)) #根据返回值判断最大值,返回值最大的那个参数是结果- dic={'k1':10,'k2':100,'k3':30}
def func(key):- return max(key)
print(func(dic.values()))
- res = map(lambda x:x**2,[1,5,7,4,8])
- for i in res:
- print(i)
- 输出
- 25
- 16
- res = filter(lambda x:x>10,[5,8,11,9,15])
- for i in res:
- print(i)
- 输出
- 15
面试题:
- 1.下面程序的输出结果是:
- d = lambda p:p*2
- t = lambda p:p*3
- x = 2
- x = d(x)
- x = t(x)
- x = d(x)
- print x
- 2.现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
- 3.以下代码的输出是什么?请给出答案并解释。
- def multipliers():
- return [lambda x:i*x for i in range(4)]
- print([m(2) for m in multipliers()])
- 请修改multipliers的定义来产生期望的结果。
- 练习
- max([1,2,3,4,5,-6,-7],key=abs)
- ret = map(abs,[-1,2,-3,4])
- for i in ret:
- print(i)
- def func(x):
- return x**2
- ret = map(func,[-1,2,-3,4])
- for i in ret:
- print(i)
- ret = map(lambda x:x**2,[-1,2,-3,4])
- def func(x):
- return x>10
- res = filter(func,[5,8,11,9,15])
- for i in res:
- print(i)
- # min max filter map sorted —— lambda
面试题:
- 1.下面程序的输出结果是:
- d = lambda p:p*2
- t = lambda p:p*3
- x = 2
- x = d(x)
- x = t(x)
- x = d(x)
- print x #24
- 2.现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
- ret = zip((('a'),('b')),(('c'),('d')))
- print(ret)
- for i in ret:
- print(i)
- ret = zip((('a'), ('b')), (('c'), ('d')))
- def func(tup):
- return {tup[0]:tup[1]}
- res = map(func, ret)
- print(list(res))
- ret = zip((('a'), ('b')), (('c'), ('d')))
- ret = map(lambda t:{t[0]:t[1]},ret)
- print(list(ret))
- print(list(map(lambda t:{t[0]:t[1]},zip((('a'), ('b')), (('c'), ('d'))))))
- 3.以下代码的输出是什么?请给出答案并解释。
- def multipliers():
- return [lambda x:i*x for i in range(4)]
- print([m(2) for m in multipliers()])
- 请修改multipliers的定义来产生期望的结果。
- def multipliers():
- return [lambda x:i*x for i in range(4)]
- print([m(2) for m in multipliers()])
- def multipliers():
- return (lambda x:i*x for i in range(4))
- print([m(2) for m in multipliers()])
- # [6, 6, 6, 6]
- # [0, 2, 4, 6]
Python_匿名函数_47的更多相关文章
- Python_匿名函数
匿名函数:为了解决那些功能很简单的需求而设计的一句话函数. 代码如下: 1 正常函数: 2 3 def calc(n): 4 5 return n ** n 6 7 print(calc(10)) 8 ...
- Python_内置函数和匿名函数
楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...
- 冒泡,setinterval,背景图的div绑定事件,匿名函数问题
1.会冒泡到兄弟元素么? $(function(){ $("#a").click(function(){alert("a")}) $("#b" ...
- Javascript之匿名函数
分析: 1.所谓匿名函数,从字面意思理解,就是没有名字的函数,js 用()来代替(注意,是英文状态下的括号) 2.定义形式: function (){ //to add codes that you ...
- 巧用javascript对象属性,向事件绑定的匿名函数内传递循环控制变量的值
遇到一个需要向匿名函数传递循环控制变量的问题,我受到园子里这篇文章的启发[笔记]js获取当前点击元素的索引,解决了这个问题.现在把代码贴出来,以防止自己忘记. if ($('#labModal').l ...
- 浅析匿名函数、lambda表达式、闭包(closure)区别与作用
浅析匿名函数.lambda表达式.闭包(closure)区别与作用 所有的主流编程语言都对函数式编程有支持,比如c++11.python和java中有lambda表达式.lua和JavaScript中 ...
- 委托,匿名函数和lambda表达式
很早之前就接触到了委托,但是一直对他用的不是太多,主要是本人是菜鸟,能写的比较高级的代码确实不多,但是最近在看MSDN微软的类库的时候,发现了微软的类库好多都用到了委托,于是决定好好的研究研究,加深一 ...
- Javascript自执行匿名函数(function() { })()的原理分析
匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下文中称这种函数为:自执行函数 下面是一个最常见的自执行函数: // 传统匿名函数 (function() { alert('hell ...
- 一篇关于匿名函数(function(){})()不错的文章
代码如下: (function(){ //这里忽略jQuery所有实现 })(); (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他 ...
随机推荐
- selenium-获取一组数组进行操作(七)
selenium-获取一组数组进行操作 以 纵横中文网 中获取24小时畅销榜的书单为例 此文仅做 selenium 在自动化测试中怎么获取一组数据进行说明,不做网络爬虫解释 当然,使用爬虫得到本文 ...
- sql 语句按字段指定值排序及分页
为特定字段赋值并排序 表[Table_temp]中列[col1]为字符,属性为varchar(),排序时需要按照B.A.C的顺序显示,则可按照以下SQL语句: select * from Table_ ...
- sqlServer 获取最新的一条数据
SQL语句获取最新一条的数据 * from tra.dbo.订单 order by 下单时间 desc --时间倒序排列取第一条 select * from tra.dbo.订单 where 下单时间 ...
- 变量查询,运算符优先级,if语句
1.三个关联表的查询 use 新建 create table teacher(tcode int primary key,lesson char(10),age int,birth datetime) ...
- SQL2008无法附加数据库,提示“无法显示请求的对话框”(nColIndex实际值是-1)图文解决方法
SQL2008无法附加数据库,提示“无法显示请求的对话框”(nColIndex实际值是-1)图文解决方法 SQL2008无法附加数据库,提示“无法显示请求的对话框”(nColIndex实际值是-1)图 ...
- Alwayson查询主副本不同的JOB,Linkserver,Login
DECLARE @SQL AS VARCHAR(5000), @Primary AS VARCHAR(50), @Secondy AS VARCHAR(50); SELECT @Primary='AA ...
- 看到一个想收藏的的AJAX小列子
用户登录的验证可以使用 form 表单提交,也可以使用 ajax 技术异步提交. AJAX 即 Asynchronous Javascript And XML(异步 JavaScript 和 XML) ...
- #006 C语言大作业学生管理系统第三天
还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...
- python 浅谈字典dict
一.字典简介 字典(dict)是python中唯一的映射类型,他是以{ }括起来的键值对组成,在dict中的key是唯一的.在保存的时候,根据key来计算出一个内存地址.然后将key-value保存在 ...
- docker pull下载镜像报错Get https://registry-1.docker.io/v2/library/centos/manifests/latest:..... timeout
使用docker pull从镜像仓库拉取镜像时报错如下:[root@docker-registry ~]# docker pull centosUsing default tag: latestTry ...