python中lambdayieldmapfilterreduce的使用

Posted 厚积薄发

tags:

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

1、 匿名函数lambda

  python中允许使用lambda关键字定义一个匿名函数。所谓的匿名函数就是说使用一次或者几次之后就不再需要的函数,属于“一次性”函数。

#例1:求两数之和
f = lambda x, y: x + y
print(f(5, 1))

#例2:求平方和
print((lambda x, y: x**2 + y**2) (3, 4))

#执行结果
6
25

2、关键字 yield

  yield可以将函数执行的中间结果返回但是不结束程序。

  yield关键字可以把一个函数变成一个生成器(generator)。

#实现一个range函数。
>>> def fun(x): ... i = 0 ... while i<x: ... yield i ... i+=1 ... >>> for i in fun(7): ... print(i) ... 0 1 2 3 4 5 6

 

#斐波那契数列实现
>>> def fab(x):
...     a, b, n = 0, 1, 0
...     while n<x:
...             a, b = b, a+b
...             yield b
...             n += 1
... 
>>> for i in fab(10):
...     print(i)
... 
1
2
3
5
8
13
21
34
55
89

3、遍历函数(map)

  map函数用于遍历序列。

>>> def func(a, b):
...     return a+b
... 
>>> li = [1,2,3,4]
>>> def func(a):
...     return a+100
... 
>>> print(list(map(func, li)))
[101, 102, 103, 104]

  

>>> li = [1,2,3,4]
>>> print(list(map(lambda x: x**2, li)))
[1, 4, 9, 16]

 

>>> li = [1,2,3,4]
>>> lo = [5,6,7,8]
>>> print(list(map(lambda x, y: x**2 + y**2, li, lo)))
[26, 40, 58, 80]

  

>>> li = [1,2,3,4,5,6,7,8,9]
>>> print(list(map(lambda x: x > 5, li)))
[False, False, False, False, False, True, True, True, True]

4、筛选函数(filter)

  筛选函数用于对序列中的元素进行筛选,最终获取符合条件的序列。

>>> li = [1,2,3,4,5,6,7,8,9]
>>> print(list(filter(lambda x: x>5, li)))
[6, 7, 8, 9]

5、累计函数(reduce)

  对序列中的所有函数进行类操作。

>>> from functools import reduce
>>> li = [1,2,3,4,5]
>>> reduce(lambda a, b: a+b, li)
15
#第三个参数为初始值,在此值之上进行累计 >>> reduce(lambda a, b: a+b, li, 100) 115 >>>

  

以上是关于python中lambdayieldmapfilterreduce的使用的主要内容,如果未能解决你的问题,请参考以下文章

python中怎么重复打印

python中去除数组中inf

python中字典的问题

想象中的python,实际的python,希望的python

关于python中字典

python中= 和==的区别