Day 4 列表生成式 生成器
阿新 • • 發佈:2018-12-20
今天主要做的就是楊輝三角的生成器 (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)