龙空技术网

python lambda函数与map()、filter()、reduce()函数用法

默至 506

前言:

现时朋友们对“mappythonlambda”都比较关心,小伙伴们都需要剖析一些“mappythonlambda”的相关资讯。那么小编也在网络上汇集了一些有关“mappythonlambda””的相关内容,希望咱们能喜欢,小伙伴们一起来学习一下吧!

map()函数

遍历序列,对序列中每个元素进行操作,最终获取新的序列。

也就是说:map()接收一个函数fun 和一个或多个序列 list,并通过把函数fun 此作用在 list 的每个元素上,得到一个新的迭代器(Python2是列表) 并返回。

语法:

map(function, iterable, ...)

function:函数,如果iterable有多个序列,则function的参数也对应有多个

iterable:一个或多个序列

举例:

#一个参数的函数def map_test_1(x):    return x+2#两个参数的函数def map_test_2(x,y):    return x+y
当:一个参数的函数时
#一个参数的函数def map_test_1(x):    return x+2list_1=[1,2,3,4,5,6]list(map(map_test_1,list_1))

利用lambda函数进行改写:

list(map(lambda x:x+2,list_1))

当:两个参数的函数时

#两个参数的函数def map_test_2(x,y):    return x+ylist_1=[1,2,3,4,5,6]list_2=[2,3,4,5,6,7]list(map(map_test_2,list_1,list_2))

利用lambda函数进行改写:

list(map(lambda x,y:x+y,list_1,list_2))
当2个序列长度不一致时,结果以2个序列中的最短长度为准
list(map(lambda x,y : x*y, [1,2,3],[6,7,8,9,10]))list(map(lambda x,y : x*y, [1,2,3,4,5,6],[6,7]))
filter()函数

对于序列中的元素进行筛选,最终获取符合条件的序列

也就是说:filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回迭代器对象(Python2是列表),可以使用list()转换为列表。

语法:

filter(function, iterable)

function:函数

iterable:序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到迭代器对象中。

举例:

def filter_test(x):    return x%2==0list_1=[1,2,3,4,5,6]list(filter(filter_test,list_1))

利用lambda函数进行改写:

list(filter(lambda x:x%2==0,list_1))
reduce()函数

对于序列内所有元素进行累计操作

也就是说:reduce()函数对一个数据集合的所有数据进行操作:用传给 reduce 中的函数 function(必须有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果在与第三个数据用 function 函数运算,最后得到一个结果。

语法:

reduce(function, iterable[, initializer])

function :函数,有两个参数

iterable : 可迭代对象

initializer : 可选,初始参数

举例:

from functools import reducedef add(x, y):    return x + ydef mulit(x, y):    return x * y
function :函数,有两个参数

iterable : 可迭代对象

list_1=[1,2,3,4,5,6]reduce(add,list_1)
当利用lambda函数时:
reduce(lambda x,y:x+y,[1, 2, 3, 4, 5,6])
当 function :函数,有两个参数

iterable : 可迭代对象

initializer : 可选,初始参数

reduce(add, [1, 2, 3, 4, 5,6], 10)

当利用lambda函数时:

reduce(lambda x,y:x+y,[1, 2, 3, 4, 5,6], 10)
function :函数,有两个参数

iterable : 可迭代对象

def mulit(x, y):    return x * yreduce(mulit, [1, 2, 3, 4, 5])

当利用lambda函数时:

reduce(lambda x,y:x*y,[1, 2, 3, 4, 5])

function :函数,有两个参数

iterable : 可迭代对象,initializer : 可选,初始参数

def mulit(x, y):    return x * yreduce(mulit, [1, 2, 3, 4, 5], 10)

答:使用lambda函数时:

reduce(lambda x,y:x*y,[1, 2, 3, 4, 5],10)

总结:

遍历序列,对序列中每个元素进行操作,并得出新列表时,使用map函数

对于序列中的元素进行筛选,最终获取符合条件的序列,使用filter函数

对于序列内所有元素进行累计操作,使用reduce函数。

lambda函数基本用法:lambda函数闲谈

#python#

#我要上头条#

标签: #mappythonlambda