python学習ノート(二)


久しぶりに、やっとブログを出しました~
廖雪峰先生の教程の下でpythonを勉強して、すばらしいところを学んで思わずメモを取りました.
質問:リスト生成式とgeneratorを使用して楊輝三角を書き、1行ずつ出力します.
コードは次のとおりです.
# -*- coding: utf-8 -*-

def triangles():
    L=[1]
    while True:
        yield L
        L=[sum(i) for i in zip([0]+L,L+[0])]
        
n=0
for t in triangles():
    print(t)
    n+=1
    if n==10:
        break
      
#    
# [1]
# [1, 1]
# [1, 2, 1]
# [1, 3, 3, 1]
# [1, 4, 6, 4, 1]
# [1, 5, 10, 10, 5, 1]
# [1, 6, 15, 20, 15, 6, 1]
# [1, 7, 21, 35, 35, 21, 7, 1]
# [1, 8, 28, 56, 70, 56, 28, 8, 1]
# [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

コードはオリジナルではありません.
注意、zip()関数の役割:2つのリストの同じ位置の要素を加算して新しいリストを取得します.
例えばzip([1,2],[3,4])-->[4,6]は複数のリストをサポートする.
上記のコードを見てpythonの簡潔さを実感し、もっと勉強に興味を持ちました!