lambda函数的使用 – Python笔记

题目

numbers = [1, 3, 6]
newNumbers = tuple(map(lambda x: x , numbers))
print(newNumbers)

以上代码输出结果为?

分析

1.lambda是什么?

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

例:

g = lambda x:x+1

执行结果

g(2)
  >>>3

lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为:

def g(x):
    return x+1

2.map是什么?

  • map() 会根据提供的函数对指定序列做映射。
  • 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

例:

>>>def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方

执行结果

[1, 4, 9, 16, 25]

取列表每个元素作为square的参数,并一一返回!

答案

  1. 首先将参数传入lambda x
  2. 得出[1, 3, 6]
  3. tuple将列表转换为元祖,最后得出:
(1, 3, 6)
       

留言

本站文章如未特殊注明,均为原创,转载请注明出处: 未必平凡  本文链接地址: https://vv2014.com/1230.html