楊輝三角的定義如下:
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 ...