Python基础(12):生成器 & reduce

一、基础生成器

在 Python 中,生成使用了 yield 的基础函数被称为生成器(generator)。

跟普通函数不同的生成是,生成器是基础一个返回迭代器的函数,只能用于迭代操作,生成更简单点理解生成器就是基础一个迭代器。

Python基础(12):生成器 & reduce

在调用生成器运行的生成过程中,香港云服务器每次遇到 yield 时函数会暂停并保存当前所有的基础运行信息,返回yield的生成值。并在下一次执行 next()方法时从当前位置继续运行。基础

Python基础(12):生成器 & reduce

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import sys def fibonacci(n): # 生成器函数 - 斐波那契 a,生成 b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 while True: try: print(next(f),基础 end=" ") except StopIteration: sys.exit() 执行以上程序,输出结果如下: 0 1 1 2 3 5 8 13 21 34 55

二、生成reduce

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

Python基础(12):生成器 & reduce

如:

1 2 3 4 5 6 7 8 9 10 11 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.

云服务器提供商
域名
上一篇:数据中心的冷却效率
下一篇:国内首款量子编解码和调制解调芯片研制成功,来自国光量子