python 生成器 楊輝三角

2021-07-29 17:58:57 字數 973 閱讀 6646

楊輝三角的定義如下:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

把每一行看做乙個list,試寫乙個generator,不斷輸出下一行的list:

期待輸出:

[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]

python**:

# /usr/bin/python

# -*- coding:utf-8 -*-

defyangtri

(): l = [1]

while

true:

yield(l) #for迴圈執行過程中,遇到yield就中斷,下次又從該位置繼續執行

newl = [l[i]+l[i+1] for i in range(len(l)-1)] #列表生成器 上一章

l = newl

l.insert(0,1) #在第0位插入資料1

n = 0

for t in yangtri(): #使用for迴圈來迭代才能獲取generator的下乙個值,或者使用.next()

print(t)

n = n + 1

if n==10:

break

Python生成器實現楊輝三角

很容易就得出規律 除根以外,每個數都由它上層的左右兩數之和,乙個數不存在即視為0。根為1 由此規律,易得每層邊界數值為1 下面用python的生成器來實現這個著名的三角 coding utf 8 defyanghui level for i in range level 由於根不符合抽象出的規律,單...

python 生成器生成楊輝三角的方法 必看

用python寫趣味程式感覺屌屌的,停不下來 生成器生成展示楊輝三角 原理是在乙個2維陣列裡展示楊輝三角,空的地方用0,輸出時,轉化為 def yang line n,leng 0,2 line 1 f list list range leng 2 預先分配,insert初始胡會拖慢速度,最底下一行...

python楊輝三角 楊輝三角I II

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 可以一行一行錯位加,當然這裡提供更簡便的方法。任取一行描述 1,2,1 如何得到 1,3,3,1 ...