pythonfor杨辉三角_python 杨辉三角
是我寫的普通不用生成器版本:
l=[]
for i in range(10):
l.append([])
for j in range(i+1):
l[i].append(0) #用0占位置,我之前沒有占位置時(shí)候,初始化為l=[[],[]]會(huì)顯示index out of range.不知道為何,我是初學(xué)者。
if j==0 or j==i:
l[i][j]=1 #兩端為1
else:
l[i][j]=l[i-1][j-1]+l[i-1][j] #中間數(shù)為上兩數(shù)之和
print "%4d"%l[i][j], #輸出
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
我后來百度了一下,用生成器的也有幾個(gè)版本,前面格式都一樣。獲取下一列的方式不一樣。版本一:
def triangles():
L = [1]
while True:
yield L
L.append(0)
L = [L[i - 1] + L[i] for i in range(len(L))]#用前一個(gè)list 生成后一個(gè)list每一個(gè)元素。第一個(gè)元素等于 l[-1] +l[1] (0+-1)
版本二:
def?triangles(): L?=?[1]
while True:
yield L
L=[sum(i) for i in zip([0]+L,L+[0])]#創(chuàng)造兩個(gè)list 錯(cuò)位+
總結(jié)
以上是生活随笔為你收集整理的pythonfor杨辉三角_python 杨辉三角的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP 后台配置之FM基金管理篇
- 下一篇: 关于如何构建数字资产量化的投资组合的思考