python之函数式编程

Posted 贺言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之函数式编程相关的知识,希望对你有一定的参考价值。

1.li=[1,2,3,4,5]

   def add(x):

           return x+1

 

   def  test(func,array):

           res=[]

           for i in array:

                 num=func(i)

                 res.append(num)

          return res

   print(test(add,li))

   print(test(lambda x:x**2,li))                     //输出结果为[2, 3, 4, 5, 6]
                                                                                       [1, 4, 9, 16, 25]

   res=map(add,li)

   for i in res:

          print(i)                                        //使用map()内置函数

   print(list(map(add,li)))

2.li=[‘yue_xiao_b‘,‘yue_jing_b‘,‘yue_lin‘,‘problem‘]

 def test(array):
res=[]
for i in array:
if not i.startswith(‘yue‘):
res.append(i)
return res
print(test(li)) //输出结果为[‘problem‘]
print(list(filter(lambda n:n.endswith(‘b‘),li))) //输出结果为[‘yue_xiao_b‘, ‘yue_jing_b‘],filter()内置函数
3.from functools import reduce
li=[1,3,5,10]
def test(func,array,init=None):
if init is None:
res=li.pop(0)
else:
res=init
for i in array:
res=func(res,i)
return res
print(test(lambda x,y:x*y,li,10)) //输出结果为1500
print(reduce(lambda x,y:x*y,li,10))  //reduce()内置函数
4.小结:
map()处理得到的结果是一个‘列表‘,‘列表‘中每个元素位置不变,只是在原来的基础上进行了加工
filter()遍历序列中的每个元素,判断其布尔值,如果为True则留下来
reduce()处理序列,并对其进行相应的合并操作

 

以上是关于python之函数式编程的主要内容,如果未能解决你的问题,请参考以下文章

python 之函数式编程

python函数式编程之装饰器

Python基础学习代码之函数和函数式编程

python基础之函数式编程

python函数式编程之生成器

Python函数式编程,范围和变量。我哪里错了?