杨辉三角
Topic source你真是太厉害了,这么短的代码就可以实现。研究你的代码也让我对节课有了更深的理解。我仿照课程里的案例,给你的代码加了一个控制,可以按照自己的需求出结果: def triangles(max): L=[1] n=0 while n < max: yield L L=[L[i]+L[i+1] for i in range(len(L)-1)] L.insert(0,1) L.append(1) n=n+1
def triangles(): L=[1] while 1 : yield L L=[L[i]+L[i+1] for i in range(len(L)-1)] L.insert(0,1) L.append(1) def triangles2(): L2=[1] while 1 : yield L2 L2.insert(0,0) L2.append(0) L2=[L2[i]+L2[i+1] for i in range(len(L2)-1)] 输出都是一样的,想知道为什么第二个测试失败?
有个疑问,请教大佬们 L[i] + L [i + 1] for i in range(len(L) - 1) 为什么这句话不会越界呢? 当L = [1]的时候,len(L) - 1 = 0,这时候i只能取0 然后就会出现L[0] + L[1] 可是L只有一个0元素啊
哈哈,英雄所见略同。 def triangles(): curr=[1] pre = curr yield pre while True: curr=[] curr = [pre[index] + pre[index - 1] for index, item in enumerate(pre) if index - 1 >= 0] curr.append(pre[-1]) curr.insert(0, pre[0]) pre = curr yield curr
- 1
- 2
音凉yolanda
def triangles(): L=[1] while True: yield L L=[L[i]+L[i+1] for i in range(len(L)-1)] L.insert(0,1) L.append(1)