美文网首页
Python使用generator实现杨辉三角

Python使用generator实现杨辉三角

作者: JackKun | 来源:发表于2019-01-07 16:19 被阅读0次

上代码:

# 杨辉三角
def triangles():
    L = [1]
    while True:
        yield L
        L1 = []
        L.insert(0, 0)
        L.insert(len(L), 0)
        #相邻数字相加
        for x in range(len(L)-1):
            L1.append(L[x]+L[x+1])
        L = L1
    return 'done'


results = []
generator1 = triangles()
for i in range(10):
    results.append(next(generator1))
print(results)

最后的输出结果不符合预期,如下,下面一篇文章(https://www.jianshu.com/p/b55f90399182)解释原因。

预计输出结果:
[[1 ], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1], [1, 7, 21, 35, 35, 21, 7, 1], [1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]]
实际输出结果:
[[0, 1, 0], [0, 1, 1, 0], [0, 1, 2, 1, 0], [0, 1, 3, 3, 1, 0], [0, 1, 4, 6, 4, 1, 0], [0, 1, 5, 10, 10, 5, 1, 0], [0, 1, 6, 15, 20, 15, 6, 1, 0], [0, 1, 7, 21, 35, 35, 21, 7, 1, 0], [0, 1, 8, 28, 56, 70, 56, 28, 8, 1, 0], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]]

每一个next(generator1)里前后是没有0的,但是append到results之后下一次输出就有了


JackKun的简书

相关文章

  • Python使用generator实现杨辉三角

    上代码: 最后的输出结果不符合预期,如下,下面一篇文章(https://www.jianshu.com/p/b55...

  • python实现杨辉三角

    使用python实现杨辉三角python教程-生成器 杨辉三角的特点:1.每行端点与结尾的数为12.每个数等于它上...

  • 用python实现杨辉三角

    来自廖雪峰官方网站python教程课后练习 用python实现杨辉三角: 测试用例如下:

  • python输出杨辉三角

    杨辉三角定义 今天学习到的一个python代码实现非常简洁网址如下:python 生成器对于像我这样python初...

  • 队列杨辉三角

    杨辉三角 杨辉三角的特点是,两腰都是1,中间的数=上面两个数之和。 使用队列思想实现杨辉三角的流程 首先,需要初始...

  • model类模型方法fit_generator

    https://keras.io/zh/models/model/ fit_generator 使用 Python...

  • Python中的查询任意范围内的质数

    这些个函数的初衷是因为最近看了python的generator的使用,想到generator更适用于未知个数的计算...

  • python中的生成器(generator)总结

    1.实现generator的两种方式 python中的generator保存的是算法,真正需要计算出值的时候才会去...

  • Python Generator(生成器)

    什么是Python Generator(生成器)?Python Generator(生成器)用于在内存资源有限的情...

  • 2018-12-16 协程

    协程 又叫微线程,纤程python 对协程的实现是通过generator实现的 生成器-含有yield 有函数-生...

网友评论

      本文标题:Python使用generator实现杨辉三角

      本文链接:https://www.haomeiwen.com/subject/vkwurqtx.html