1. 程式人生 > >Python基礎篇——yield關鍵字的使用

Python基礎篇——yield關鍵字的使用

複習一下yield的使用

簡介

帶有yield的函式在Python中被稱之為generator(生成器),而生成器的機制就是在迴圈過程中邊迴圈邊計算,減少記憶體限制

練習

楊輝三角定義如下:

          1
         / \
        1   1
       / \ / \
      1   2   1
     / \ / \ / \ 
    1   3   3   1
   / \ / \ / \ / \
  1   4   6   4   1
 / \ / \ / \ / \ / \
1   5   10  10  5   1

演算法程式碼:

n = 0
L = [1]
while True:
	yield L
	L = [ L[i] + L[i+1] for i in n ]
	L.insert(0, 1)
	L.append(1)
	n = n + 1

關鍵點:

  • 普通函式是順序執行,遇到return或最後一行函式就返回
  • generator遇到yield語句返回,再次執行時從上次返回的yield語句繼續執行
  • 而一般情況下,運用在for迴圈中,因為generator也是可迭代物件