Python的函数名作为参数传入调用以及map、reduce、filter

零、python的lambda函数:

 #lambda function
func = lambda x : x+1
#这里是一个匿名函数,x是参数,x+1是对参数的操作
func(1)= 2

多个参数的lambda如下:

 func = lambda x,y,x : x+y+z
#above
func(1,2,3) = 6

一、python的map函数:

 #function define abs
def abs(x):
return x if x > 0 else -x
#function map
map(abs,[1,2,-1,-7]) = [1,2,1,7]
#遍历后面的参数liist 每一个都传入前面的函数名中运算得出新的list

二、python的reduce(遇到过坑,这是二元的,函数只能是两个参数的):

 #function define
def add(x,y):
return x+y
#reduce
reduce(add,[1,2,3,4,5,6,7,8,9]) = 45
# 1+2+3+4+5+6+7+8+9= 45

三、python的filter()--》把参数的list的按照前面的函数算法过滤:

 #filter
#define function
a = [1,2,3,4,5,6,7,8]
filter(lambda x:x>5,a) = [6,7,8]

四、自定义函数名作为参数传入调用:

 #define
def test(p1,p2,p3,p4):
return (p1,p2,p3,p4)
def func_select(funcname,para):
print funcname(para[0],para[1],para[2],para[4])
para = (p1,p2,p3,p4)
func_select(test,para)
上一篇:jquery TypeError: 'undefined' is not a function (evaluating 'elem.nodeName.toLowerCase()') [jquery.js:1904]错误原因


下一篇:js面试题知识点全解(一作用域)