繁体   English   中英

帕斯卡三角生成器

[英]Generator for Pascals triangle

我在列表中制作了帕斯卡三角形值的生成器

    import math

    def combination(n, r):
        t = int((math.factorial(n)) / ((math.factorial(r)) * math.factorial(n - r)))
    
        return t

    def pascal_triangle():
        """Return numbers from pascal triangle"""
   
        count = 0
        while count>=0:
       
            for element in range(count + 1):
           
                t =combination(count, element)
                yield t
            count += 1
    lst= [next(pascal_triangle()) for _ in range(10)]
    print(lst)

结果只是 1 的列表,但应该是 1 1 1 2 1 1 3 3 1 .....我哪里错了?

对于列表理解中的每个元素, pascal_triangle都被重新调用,从头开始。 你想要的是:

pt = pascal_triangle()
lst= [next(pt) for _ in range(10)]
print(lst)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM