整理Python生成器

2021-08-02 14:45:39 字數 1164 閱讀 5653

一、生成器簡介:

只有在呼叫時才生成相應的資料只記錄當前位置

只有乙個方法__next__() 

#!/usr/bin/env python

# -*- coding:utf-8 -*-

a = [i*2 for i in range(10)] #列表

print(a)

b = (i*2 for i in range(10)) #生成器generator

print(b)

結果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

at 0x107027200>   

二、yield和stopiteration

def fib(n):

a, b = 0, 1

for i in range(n):

yield b #print(b)改為yield b 即變為生成器

a,b = b,a+b

f = fib(10)

while true:

try:

x = f.__next__()

print(x)

except stopiteration as e:

print('error ',e.value)

break

三、generator和函式的執行流程不一樣:

import time

def consumer(name):

print('%s 快來吃包子啊!' % name)

while true:

baozi = yield

print('包子%s來了,被%s吃啦' % (baozi,name))

def producer():

c1 = consumer('amber')

c2 = consumer('lucy')

c1.__next__()

c2.__next__()

for i in range(5):

c1.send(i)

c2.send(i)

producer()

python 生成器作用 Python生成器

生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...

python生成器好處 Python生成器筆記

python中三大器有迭代器,生成器,裝飾器,本文主要講述生成器。主要從生成器的概念,本質,以及yield關鍵字的使用執行過程。本質 生成器是一類特殊的迭代器,使用了yield關鍵字的函式不再是函式,而是生成器。使用了yield的函式就是生成器 1.yield關鍵字有兩點作用 1.1 yield語句...

python生成器函式 Python 生成器函式

一 生成器 生成器指的是生成器物件,可由生成器表示式得到,也可使用 yield 關鍵字得到乙個生成器函式,呼叫這個函式得到乙個生成器物件 生成器物件,是乙個可迭代物件,是乙個迭代器 生成器物件,是延遲計算 惰性求值的 1.1 生成器函式 函式體重包含 yield 語句的函式,就是生成器函式,呼叫後返...