初學 Python(十四)——生成器
初學 Python,主要整理一些學習到的知識點,這次是生成器。
# -*- coding:utf-8 -*- ''''' 生成式的作用: 減少記憶體佔有,不用一次性 建立list中所有的元素,而 是在需要的時候建立 ''' #建立generator有2種方式 #第一種將列表表示式中的[]改為()即可 g = (x*x for x in range(10)) print g for n in g: print n #第二種,關鍵字yield def fab(max): n,a,b = 0,0,1 while n < max: yield b a,b = b,a+b n = n+1 g1 = fab(6) for n in g1: print n ''''' 再說區別: 為什麼加了一個yield就變成了生成器? 因為yield一加,就不再像函式一樣順序執行 而是每次呼叫時,執行到yield時返回,下次再 呼叫時從yield後面的語句開始執行 '''