zoukankan      html  css  js  c++  java
  • 用python生成器实现杨辉三角

    先看杨辉三角的形态:

              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
    1 for x in yhTriangle(10):
    2     print(x)

    对于每一行,list 的第一个元素和最后一个元素是不变的。如果用L = [] 表示的话, L[0], L[n],是 不变的,

    [l[i] + l[i + 1] for i in range(len(l) - 1)]

    所以用这个列表生成式表示 中间的那一部分

    1 def yhTriangle(n):
    2     l, index = [1], 0
    3     while index < n:
    4         yield l
    5         l = [1] + [l[i] + l[i + 1] for i in range(len(l) - 1)] + [1]
    6         index += 1

    完整代码贴出来,大家看看,欢迎提意见啊哈




     
  • 相关阅读:
    指针
    显示和隐式转换
    C++虚函数
    字符串输出
    BP神经网络
    超像素分割
    函数putText()在图片上写文字
    compare
    十五、cookies和session的使用
    爬取腾讯社招职位信息
  • 原文地址:https://www.cnblogs.com/fanyuchen/p/7206955.html
Copyright © 2011-2022 走看看