首页 > 编程知识 正文

qpython(python中lambda用法)

时间:2023-05-03 07:08:26 阅读:79009 作者:1728

map ) )函数遍历序列,并操纵序列中的每个元素,最终获取新序列。

也就是说,map ) )接受函数fun和一个或多个序列list,并通过使函数fun作用于list的每个元素来获得新的迭代程序(Python2是列表)并返回。

语法:

如果map (函数,iterable,) function函数,iterable中有多个序列,则function参数也对应于有多个iterable (一个或多个序列)

示例:

一个参数的函数

efmap_test_1(x ) :

2个返回

#两个参数的函数

defmap_test_2(x,y ) :

return x y当量:对于单个参数的函数#单个参数的函数

efmap_test_1(x ) :

2个返回

list _1=[ 1,2,3,4,5,6 ]

list(map(map_test_1,list_1) ) 9501.163.com) )。

使用lambda函数重写:

list(map ) lambdax:x2,list_1) ) ) 9502.163.com) ) ) ) ) ) )。

(对于两个参数的函数)两个参数的函数

defmap_test_2(x,y ) :

返回x y

list _1=[ 1,2,3,4,5,6 ]

list _2=[ 2,3,4,5,6,7 ]

list(map(map_test_2,list_1,list_2) ) 9503.163.com) ) ) ) ) ) )。

使用lambda函数重写:

list(map ) lambdax,y:x y,list_1,list_2) ) 9504.163.com) ) ) )。

如果两个序列的长度不匹配,则结果以两个序列中的最短长度为准list(map(lambdax,y : x*y,[ 1,2,3 ],[ 6,7,8,9,10 ] )

list(map ) lambdax,y : x*y,[ 1,2,3,4,5,6 ],[ 6,7 ] ) 9505.163.com) )

滤波器()函数

过滤序列中的元素,最终获取满足条件的序列

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

语法:

filter(function,iterable ) function :函数iterable (函数函数)序列,序列中的每个元素都作为参数传递给函数进行确定,返回True或False,并将最后返回True的元素作为迭代器对

示例:

deffilter_test(x ) :

返回x %2==0

list _1=[ 1,2,3,4,5,6 ]

list_1 (过滤器(filter _ test,list_1) ) 9506.163.com () ) ) ) ) )。

使用lambda函数重写:

list_1 (过滤器(lambdax : x %2==0,list_1) ) 9507.163.com) ) ) ) ) )。

reduce ()函数

对序列中的所有元素执行累计操作

也就是说,reduce (函数为

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

语法:

reduce(function, iterable[, initializer])

function :函数,有两个参数iterable : 可迭代对象initializer : 可选,初始参数举例:

from functools import reduce def add(x, y): return x + y def 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 * y reduce(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 * y reduce(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#

#我要上头条#

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。