Python中的lambda、map、filter、reduce、zip

Python中的lambda、map、filter、reduce、zip 标签:简单 并且 优势

Python中的lambda、map、filter、reduce、zip

标签:简单并且优势简洁pytholongest生成ret需求

lambda

lambda是匿名函数,也就是没有名字的函数。lambda的语法非常简单:

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

注意:我们可以把lambda表达式赋值给一个变量,然后通过这个变量来使用它。

>>> my_sum = lambda x, y: x+y
>>> my_sum(1, 2)
3

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

注意:

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

map

map()接收两个参数func(函数)和seq(序列,例如list)。如下图:

map()将函数func应用于序列seq中的所有元素。在Python3之前,map()返回一个列表,列表中的每个元素都是将列表或元组“seq”中的相应元素传入函数func返回的结果。Python 3中map()返回一个迭代器。

因为map()需要一个函数作为参数,所以可以搭配lambda表达式很方便的实现各种需求:

  • 例子1–将一个列表里面的每个数字都加100:

>>> l = [11, 22, 33, 44, 55]
>>> list(map(lambda x:x+100, l))
[111, 122, 133, 144, 155]

  • 例子2–

使用map就相当于使用了一个for循环,我们完全可以自己定义一个my_map函数:

def my_map(func, seq):
result = []
for i in seq:
result.append(func(i))
return result

测试一下我们自己的my_map函数:

>>> def my_map(func, seq):
… result = []
… for i in seq:
… result.append(func(i))
… return result

>>> l = [11, 22, 33, 44,

作者: 鲁大师

为您推荐

返回顶部