Python中可传入函数作为参数的函数有哪些以及用法区别

1、map()reduce()函数

map():接受两个参数,一个是函数,一个是Iterable,mapIterable传入函数,并把结果显示出来;
---延伸:Iterable迭代器:可以被netx()函数调用并不断返回值的对象,可以是listtupledict、字符,但不能为单个整数
def fn(x):
    return x*x
list(map(fn,[1,2,3,4,5]))
###[1,4,9,16,25]

reduce():一个函数作用在一个序列上,必须同时接受两个参数,并把结果与下一个参数重复作用,最后把结果显示出来,from functools import reduce,必须首先导入。注意,字符也算序列,可把字符转换为int

from functools import reduce
dicts1={'1':1,'2':2,'3':3,'4':4,'5':5} 
def fn(x):
    return(dicts1[x])
def list1(x):
    return reduce(lambda x,y:x*10+y,map(fn,x))
###12345

2、 filter()函数:用于过滤序列,接受一个函数和一个序列,与map()不同的是把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定,能起到筛选作用。


3、在函数的定义中,默认参数必须指向不变对象。






猜你喜欢

转载自blog.csdn.net/qq_24726509/article/details/80444768