python-generator生成杨辉三角】的更多相关文章

用Python写趣味程序感觉屌屌的,停不下来 #生成器生成展示杨辉三角 #原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' ' def yang(line): n,leng=0,2*line - 1 f_list = list(range(leng+2)) #预先分配,insert初始胡会拖慢速度,最底下一行,左右也有1个空格 #全部初始化为0 for i,v in enumerate(f_list): f_list[v] = 0 ZEROLIST = f_list[:] #预…
用Python输出一个杨辉三角的例子 这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下 关于杨辉三角是什么东西,右转维基百科:杨辉三角 稍微看一下直观一点的图: 代码如下: 杨辉三角有以下几个特点: 每一项的值等于他左上角的数和右上角的数的和,如果左上角或者右上角没有数字,就按0计算. 第N层项数总比N-1层多1个 计算第N层的杨辉三角,必须知道N-1层的数字,然后将相邻2项的数字相加,就能得到下一层除了最边上2个…
杨辉三角定义如下: 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,随后通过循环,位置i(从2开始)的数是上一行i与i-1位置的数之和,当i与上一行数字个数相同时,循环终止,最后再添加进一个1,形…
先看杨辉三角的形态: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 上学的时候大多是用c语言的两层for循环在实现,现在我们尝试用生成器来实现. 先说思路:我们把每一次层看作一个list, 通过一个for循环,通过迭代,每次生成一个list,而生成器就在每一行生成list中起作用,我们先定义一个函数,作用是生成每一行的list for x in yhTriangle(10): print(x) 对于每一行,list 的第一个元素和最后一个元素是不变的.如…
练习 杨辉三角定义如下: 1 / \ 1 1 / \ / \ 1 2 1 / \ / \ / \ 1 3 3 1 / \ / \ / \ / \ 1 4 6 4 1 / \ / \ / \ / \ / \ 1 5 10 10 5 1 把每一行看做一个list,试写一个generator,不断输出下一行的list: def triangles(): list = [1] while list: yield list newlist = list.copy()#进行一次深复制 for i in ra…
def triangels(): """ 杨辉三角 """ lst = [1] n_count = 2 # 下一行列表长度 while True: yield lst lst_n = list(range(0 ,n_count)) lst = [1] + [lst[i-1]+lst[i] for i,v in enumerate(lst_n) if i!=0 and i!=n_count-1] + [1] n_count += 1 调用: n =…
def triangel(): print ' '*(20*3)+str(1) #定义起始两行 print ' '*(19*3)+str(1)+' '*5+str(1) for i in range(3,21): if i ==3: L = [1,1] #初始化第二行 L1 = [] for j in range(2,i): z = L[i-j-1]+L[i-j] # 通过上一行构建下一层数据 L1.append(z) # 将数据添加到一个空列表中 L = [1] # 再次对L初始化 L.ext…
该题还是考杨辉三角计算,只不过最后每一行都放入List集合中,然后返回,直接看代码: public static List<List<Integer>> generate(int row){ List<List<Integer>> list = new ArrayList<List<Integer>>(); int[][] arr = new int[row][row]; for(int j = 0;j<row;j++) { L…
根据廖雪峰老师的评论区摘录. 1: def triangles(): L = [1] while True: yield L L1 = [0] + L[:] L = [L[i]+L1[i] for i in range(len(L))] + [1] 2: def triangles(): L = [1] while True: yield L L.append(0); L = [L[i-1] + L[i] for i in range(len(L))] 输出结果: # 期待输出: # [1] #…
def triangles(): c = [1] while 1: yield c a,b=[0]+c,c+[0] c=[a[i]+b[i] for i in range(len(a))] n = 0 for t in triangles(): print(t) n = n + 1 if n == 10: break…