python10-高阶函数

python

def use_filer(l):

"""

获取指定列表/元组中的奇数

:param l: lsit/tuple

:return:

"""

rest = filter(lambda n:n % 2 != 0,l)

return rest

if __name__ == '__main__':

l = [1,2,3,4,5,6,7,8,9]

rest = use_filer(l)

print(list(rest))

  结果

[1, 3, 5, 7, 9]

filter函数的原理

def is_even(x):

return x%2==0

tmp = filter(is_even,range(10))

list(tmp)

#最后一定要按照原来的类型转换回来

通过函数f筛选序列中的元素

filter(f,eq)

eq:待过滤的序列

f:过滤规则

tmp = filter(lamda n : n % 2 == 0,range(10))

map是python内置函数" title="python内置函数">python内置函数,会根据提供的函数对指定的序列做映射。

map()函数的格式是:

map(function,iterable,...)

第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。

把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。

def use_filer(l):

"""

获取指定列表/元组中的奇数

:param l: lsit/tuple

:return:

"""

rest = filter(lambda n:n % 2 != 0,l)

return rest

if __name__ == '__main__':

l = [1,2,3,4,5,6,7,8,9]

rest = use_filer(l)

print(list(rest))

def pow_number(l):

"""

给定列表,放回每一项的立方

:param l:

:return:

"""

rest_list = []

for x in l:

rest_list.append(x*x*x)

return rest_list

def pow_number_map(l):

"""

:param l:

:return:

"""

#return map(f,l)

return map(lambda n:n*n*n,l)

if __name__ == "__main__":

rest = pow_number(l)

print(rest)

print("++++++++++++++++++++++")

rest = pow_number_map(l)

print(list(rest))

结果:

[1, 3, 5, 7, 9]

[1, 8, 27, 64, 125, 216, 343, 512, 729]

++++++++++++++++++++++

[1, 8, 27, 64, 125, 216, 343, 512, 729]

from functools import reduce

def get_sum(l):

"""

求和

:param l:

:return:

"""

rest = 0

for i in l:

rest += i

return rest

def get_sum_use_py(l):

"""

使用内置函数

:param l:

:return:

"""

return sum(l)

def get_sum_use_reduce(l):

"""

使用reduce函数求和

:param l:

:return:

"""

return reduce(lambda n,m:n + m,l)

if __name__ == "__main__":

l = [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(get_sum(l))

print(get_sum_use_py(l))

print("!!!!!!!!!!!!!!!!!!!")

print(get_sum_use_reduce(l))

结果

python中的reduce
   python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。
如:

 def myadd(x,y):  

return x+y

sum=reduce(myadd,(1,2,3,4,5,6,7))

print(sum)

#结果就是输出1+2+3+4+5+6+7的结果即28
当然,也可以用lambda的方法,更为简单:

 sum=reduce(lambda x,y:x+y,(1,2,3,4,5,6,7))  

print sum

在python 3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce.

 

 

python中的reduce
   python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。
如:

 def myadd(x,y):  

return x+y

sum=reduce(myadd,(1,2,3,4,5,6,7))

print(sum)

#结果就是输出1+2+3+4+5+6+7的结果即28
当然,也可以用lambda的方法,更为简单:

 sum=reduce(lambda x,y:x+y,(1,2,3,4,5,6,7))  

print sum

在python 3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce.

以上是 python10-高阶函数 的全部内容, 来源链接: utcz.com/z/387687.html

回到顶部