匿名函数lambda及面试题三道
# 函数名 = lambda 参数 :返回值。 匿名函数只是函数,如果要通过可迭代对象给匿名函数传参,就需要使用 map 或者 filter
calc = lambda n:n**n calc(1)
clac2 = lambda x,y:x+y calc2(1,2)
参数可以有多个,用逗号隔开
匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
返回值和正常的函数一样可以是任意数据类型 求最大value的key
dict = {'k1':10,'k2':100,'k3':30}
print(max(dict))
print(max(dict,key=lambda k:dict[k])) 内置方法中带key的有 max min filter map sorted,都可以和lambda合作
面试题:
#做面试题的时候,要多想想考什么,比如生成器,迭代器,装饰器必考,多想想是不是考这些
#!!!!!!!!!!!!!!!考匿名函数,其实就是为了考内置函数 max min filter map sorted
#第一题读代码
d = lambda q:q*2
t = lambda t:t*3
x = 2
x = d(x)
x = t(x)
x = d(x)
print(x) #第二题,现有两元组(('a'),('b')),(('c'),('d')),
#清用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
ret = zip((('a'),('b')),(('c'),('d')))
# def func(tup):
# return {tup[0]:tup[1]}
res = map(lambda tup:{tup[0]:tup[1]},ret)
print(list(res)) #第三题,以下代码的输出是什么?
def multipliers():
ret = [lambda x:i*x for i in range(4)]
return ret print([m(2) for m in multipliers()])
#multipliers() 运行完 返回值是 [lambda x:i*x for i in range(4)]
#这个匿名函数 此时是有运行的,可以理解成运行了四次lambda x:i*x
#[lambda x:i*x lambda x:i*x lambda x:i*x lambda x:i*x]
#但是运行完了四次,此时 i == 3 所以当 m(2)给匿名函数传值的时候,输出结果就为[6,6,6,6]
#若想达到预期结果,只要把 返回值改为 (lambda x:i*x for i in range(4)),让它变成生成器表达式
#此时调用multipliers函数并不会运行,只有当 m(2)执行一次for循环才会运行一次
匿名函数lambda及面试题三道的更多相关文章
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...
- 内置函数filter()和匿名函数lambda解析
一.内置函数filter filter()函数是 Python 内置的一个高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回由符合条件迭代器 ...
- python的匿名函数lambda解释及用法
lambda函数的语法只包含一个语句,如下: lambda arg1,arg2,.....argn:expression(主要是看下面的例子)代码示例: #-*- coding:utf-8 -* ...
- 匿名函数lambda,过滤函数filter,映射类型map
匿名函数lambda, 作用是不用定义函数,用完之后会自动被删掉,在使用执行脚本的时候,使用lambda就可以省下定义函数的过程,简化代码的可读性. 格式是 例子g=lambda x,y:x+y g( ...
- 6.1 函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数
函数的返回值: 函数一旦执行到 return,函数就会结束,并会返回return 后面的值,如果不使用显式使用return返回,会默认返回None . return None可以简写为 r ...
- python的匿名函数 lambda的使用方法详解以及使用案例
1.匿名函数是用lambda这个关键字定义 lambda x:x+1 第一个x代表形参,x+1相当于函数的返回值 #lambda x:x+1 第一个x代表形参,x+1相当于函数的返回值 def ...
- Python学习笔记010——匿名函数lambda
1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...
- Python中的匿名函数lambda的用法
一.lambda函数的简介 对lambda函数,它其实是一个类似于def的函数,只不过lambda是一个不需要定义函数名的匿名函数.当我们在有些时候,需要做一些简单的数学计算时,如果定义一个def函 ...
- 『Python基础-14』匿名函数 `lambda`
匿名函数和关键字lambda 匿名函数就是没有名称的函数,也就是不再使用def语句定义的函数 在Python中,如果要声匿名函数,则需要使用lambda关键字 使用lambda声明的匿名函数能接收任何 ...
随机推荐
- 安装和使用ZFS
一.安装和使用ZFS Centos7上安装和使用ZFS:https://blog.csdn.net/linuxnews/article/details/51286358
- CentOS 7静默安装Oracle 11g R2数据库软件
之前安装Oracle 11g R2数据库软件都是建立在图形界面上的,不过现在大部分服务器上都没有安装图形界面.图形界面安装较为方便,安装选项清晰,步骤明确,但Oracle还支持另一种安装方式,就是通过 ...
- python set的函数
1. add() 为集合添加元素 2. clear() 移除集合中的所有元素 3. copy() 拷贝一个集合 4. difference() 返回多个集合的差集 5. difference_upda ...
- go语言的安装与开发环境
安装golang编译器: https://studygolang.com/dl 之后设置环境变量GOPATH(项目目录) GOROOT(默认已经设置好) 安装编辑器:IDEA安装和破解 https: ...
- Solr数据迁移
单机Solr部署在linux /opt目录下,运行一段时间后发现该目录分配的空间不足,而Solr的索引数据量较大,必须更改相关core下面的data目录,以改变索引存放的目录. 找到相应的solrco ...
- Android -- 从源码带你从EventBus2.0飚到EventBus3.0
1,最近看了不少的面试题,不管是百度.网易.阿里的面试题,都会问到EventBus源码和RxJava源码,而自己只是在项目中使用过,却没有去用心的了解它底层是怎么实现的,所以今天就和大家一起来学习学习 ...
- PyQT的安装和配置
安装pythonQt 操作系统:Windows 7 64位 python版本:3.4 PyQt5使用PIP安装 测试是否安装成功 导入PyQt5 没报错说明安装成功 pythonQt Designer ...
- laravel容器container 阅读记录
今天抽时间又仔细看了一下laravel的container,记录一下. 所谓容器,听名字就知道,是一个仓库,装东西用的,所以,container所有的功能,都围绕一个主题:管理装. 类名称:Illum ...
- mysql两条sql合并查询总数
select IFNULL(c.nodeCount,0) + IFNULL(c.phyCount,0) as totalCount from ( select count(*) nodeCount, ...
- 2440nandflash启动过程再学习
2011-02-13 12:27:05 2440nandflash启动,先是nandflash的前4K自动复制到CPU的0x0地址开始的4K区域. 然后CPU开始运行这4K(刚才copy过来的代码), ...