Python高阶函数1。map function map function,它接收两个参数,第一个参数是函数对象(当然也可以是lambda表达式),第二个参数是序列。
它能实现什么样的功能?我举个例子让你明白。
Map (lambda x: x * 2,[1,2,3,4,5]) [2,4,6,8,10]可以清晰的看到。它可以将以下序列中的每个元素作为参数,并将其传递给lambda。
当我们不不要使用map函数,你可以这样写。
我的列表=[] for I in [1,2,3,4,5]:我的列表。追加(I * 2) 2。过滤函数过滤函数,类似于贴图函数。它还接收两个参数,一个lambda表达式和一个序列。它将遍历以下序列中的每个元素,并将其作为参数传递给lambda表达式。当表达式返回True时,该元素将被保留,当表达式返回False时,该元素将被丢弃。
下面的例子将过滤掉列表中小于0的元素。
filter(lambda x:x ^ 0,range (-5,5)) [-5,-4,-3,-2,-1] 3。reduce function Reduce function,类似。它的作用是先对序列中的1、2号元素进行运算,然后将得到的结果与第三个数据用lambda函数进行运算,再将得到的结果与第四个元素进行运算,以此类推,直到不再有元素为止。
这里这是一个例子,你我会明白的。
Reduce (lambda x,y: x y,[1,2,3,4,5]) 15其运算过程分解如下。
1=33 3=66 4=1010 5=154.注意上面的函数,熟练掌握它们的写法,可以在一定程度上让我们的代码看起来更Pythonic化,更简洁。
如果你是新手,需要注意上面的例子都是在Python2.x环境下演示的。然而,在Python3.x中,情况有所不同。你可以自己试试。
这里总结如下:
首先,map和filter函数返回迭代器对象,而不是列表。以地图为例。
Map _ obj=集合中的map (lambda x: x * 2,[1,2,3,4,5])。ABC import iterator is instance(map _ obj,iterator)true next(map _ obj)2 list(map _ obj)[4,6,8,11
从functools导入减少审计福冈江
标签:函数例子元素