Discuss / Python / 好难,想了很久

好难,想了很久

Topic source
# -*- coding: utf-8 -*-

def triangles():

    n=0

    while 1:

        if n==0:

            L=[1]

            yield L

        elif n==1:

            L1=[1,1]

            yield L1

        elif n>1:                                                             #从第三个list开始中间的元素才是上一个list相邻两个元素之和,所以这里分为三个部分

            L2=[L1[i]+L1[i+1] for i in range(len(L1)-1)]    #除了左右两边元素之外,每一个元素的值是上一个list两个元素值相加,这里的+是将每一个循环内的元素相加成为一个L2内的一个元素,一次或多次循环组成L2

            L1=[1]+L2+[1]                                                    #加上左右[1]

            yield L1

        n+=1

#借上面一个大佬启发,试着不用L = [0] + L + [0],因为真的没想到还能这么操作,按照自己的理解写的,这次想了很久,学编程还是任重道远啊


  • 1

Reply