1. 程式人生 > >Day 4 列表生成式 生成器

Day 4 列表生成式 生成器

今天主要做的就是楊輝三角的生成器 (generator),其中輸出每行list時利用了列表生成器。

楊輝三角的主要思想其實就是假設有兩個list ,L和M,其中M[i]=L[i-1]+L[i](這個部分由列表生成器完成),之後在M的首尾加上1(首部用List物件[1]相加,尾部用append(1)完成)

程式碼如下:

def triangles():
  L=[1]
  yield L
  L.append(1)
  yield L
  while True:
   M=[1]+[L[i-1]+L[i] for i in range(1,len(L))]
   M.append(1)
   L=M
   yield L

呼叫Generator物件,每次只能生成一個結果,且沒有次數上限,如果想生成完整的楊輝三角,就要在呼叫的時候使用for迴圈,將每次的結果儲存下來,並且自行設定迴圈次數。

n = 0 results = [] for t in triangles():     print(t)     results.append(t)     n = n + 1     if n == 10:         break

print(result)