用Python生成器(generator) 生成 杨辉三角

需求
  • 使用Python生成器生成杨辉三角
实现思路
  • 杨辉三角特性
		  1
         / \
        1   1
       / \ / \
      1   2   1
     / \ / \ / \
    1   3   3   1
   / \ / \ / \ / \
  1   4   6   4   1
 / \ / \ / \ / \ / \
1   5   10  10  5   1
  • 看图都应该能明白
  • 调用方法 每次返回一个 list 直接上代码
def createList(x=12):
    L = [1]  #第一行
    i = 2
    while i <= x:
        yield L
        if i == 2: #第二行
            L = [1, 1]
        if i > 2: # 3,4,5..行
        	#首尾都是[1] 第二个元素为上一行的1,2元素之和 用列表生成式生成列表
            result = [1] + [L[s - 1] + L[s] for s in range(1, len(L))] + [1]
            L = result[:]
        i += 1


r = createList()
for re in r:
    print(re)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值