艾巴生活网

您现在的位置是:主页>科技 >内容

科技

python 高阶函数定义(python高阶函数详解)

2024-12-10 22:05:00科技帅气的蚂蚁
Python高阶函数1。map function map function,它接收两个参数,第一个参数是函数对象(当然也可以是lambda表达式),第二个参数是序列。

python 高阶函数定义(python高阶函数详解)

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导入减少审计福冈江