匿名函数

1、基础

lambda是匿名函数,为了解决那些功能很简单的需求而设计的一句话函数。

  lambda的语法非常简单:

  下面是一个lambda表达式的简单例子:

# 普通函数实现:
def calc(n):
    return n**n
print(calc(10))

# lambda函数实现:
calc = lambda n:n**n   # n:参数;  表达式:n**n  【表达式结果作为返回值】
print(calc(10))

 

  lambda表达式和定义一个普通函数的对比:

  注意:

  使用lambda表达式并不能提高代码的运行效率,它只能让你的代码看起来简洁一些。

 2、面试题

### 面试题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'}]
ret = zip((('a'),('b')),(('c'),('d')))
res = map(lambda tup:{tup[0]:tup[1]},ret)
for i in res:
    print(i)
# 面试题3:
# 以下代码的输出是什么?
def multipliers():
    return [lambda x:i*x for i in range(4)]    # i = 0,1,2,3
print([m(2) for m in multipliers()])           # x = 2,调用最后一个i=3

 

posted @ 2019-04-10 12:29  timetellu  阅读(180)  评论(0编辑  收藏  举报