python生成器实现杨辉三角

it2025-05-16  32

花了几乎半小时,写出了一个关于计算杨辉三角的函数,然而对答案时,又发现活到老,学到老。

没错,triangles()函数是我写的,而triangles1()则是另一位网友写的。 我说一下我写的函数里我踩的坑: 要想复制列表L为R后,L和R各自修改互不影响,就得这样复制R = L[:]。否则:

>>> L = [1,2,3,4,5] >>> R=L >>> L.append(6) >>> L [1, 2, 3, 4, 5, 6] >>> R [1, 2, 3, 4, 5, 6] >>> R.append(0) >>> R [1, 2, 3, 4, 5, 6, 0] >>> L [1, 2, 3, 4, 5, 6, 0]

这里是代码:

def triangles(): n = 3 yield [1] yield [1,1] L = [1,1] while True: R = L[:] L = [] for i in range(n): if (i < n-1) and (i > 0): L.append(R[i]+R[i-1]) else: L.append(1) yield L n += 1 def triangles1(): L=[1] yield L while True: L=[1]+[L[x]+L[x+1] for x in range(len(L)-1)]+[1] yield L n=0 for t in triangles1(): print(t) n = n + 1 if n == 20: break

版权:保留所有解释权。转发请注明出处。


转载于:https://www.cnblogs.com/busui/p/7215327.html

相关资源:数据结构—成绩单生成器
最新回复(0)