首页 > 编程语言 >Python高级特性-生成器

Python高级特性-生成器

时间:2023-03-28 11:37:04浏览次数:36  
标签:Python 生成器 value 特性 array x1 append result

前言

生成器相比普通迭代器的实现,不会像普通迭代器生成完整集合返回,而是一边循环一边计算的机制,从而节省大量的空间。

普通迭代器

def triangles(line):
    result = []
    for x in range(line):
        array = []
        value = 1
        for x1 in range(x + 1):
            if x > 1 and 0 < x1 < x:
                value = value + result[x - 1][x1]
                array.append(value)
                value = result[x - 1][x1]
            else:
                array.append(1)
        result.append(array)
    return result

生成器

def triangles(line):
    last_array = None
    for x in range(line):
        array = []
        value = 1
        for x1 in range(x + 1):
            if x > 1 and 0 < x1 < x:
                value = value + last_array[x1]
                array.append(value)
                value = last_array[x1]
            else:
                array.append(1)
        last_array = array
        yield array

测试

两种实现方式,结果都是一样的

[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]

Process finished with exit code 0

标签:Python,生成器,value,特性,array,x1,append,result
From: https://www.cnblogs.com/grassLittle/p/17264431.html

相关文章

  • MicroPython All In One
    MicroPythonAllInOneMicroPythonisafullimplementationofthePython3programminglanguagethatrunsdirectlyonembeddedhardwarelikeRaspberryPiPico......
  • python apscheduler 定时任务的基本使用-5-添加任务
    pythonapscheduler定时任务的基本使用-5-添加任务1、添加定时任务可以随时随地添加任务,不论调度器是否启动。如果未启动时,添加了定时任务,则会在调度器启动时,正常执行该......
  • pytest学习和使用22-allure特性 丨总览中的Environment、Categories设置以及Flaky tes
    (22-allure特性丨总览中的Environment和Categories设置)如下图,我们可以看到allure报告的总览,里边的一些特性是可以自定义设置的。1Environment设置Environment可以......
  • python一个带参数脚本调用另一个带参数的脚本 问题
    python  a.pymain:args=argget.parse_args(args=[])b.funa() pythonb.pydeffuna():args=argget.parse_args() 当两个py文件都需要arg参数的......
  • 练习04_Python常用库
    本周我们一起来了解一下:python库的导入数据分析常用python库:Numpy,SciPy,Matplotlib,pandas,StatsModels,scikit-learn,keraspython库的导入前两周我们练习......
  • 在python的setup.py中如何指定多个extra-index-url?
    [本文出自天外归云的博客园]以下内容来自chatGPT的回答(正解,已验证)问题:在pythonsetup.py中如何指定多个extra-index-url?在`setup.py`文件中,我们可以使用`setuptools`......
  • Python毕业设计推荐
    今天给大家推荐4个基于python的毕业设计/课程设计1.网上商城系统这是一个基于python+vue开发的商城网站,平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的......
  • Python八大数据类型内置方法(不是详细讲解)
    目录一、字符串str二、列表list三、字典dict四、元组tuple五、集合set首先Python八大数据类型之间可以转换,但是有时候不是通用即需要特定条件才可以转换,不过日常开发工作......
  • python-01
    一:python2和python3的区别:1.python2中没有默认编码格式,如果遇到中英文的内容需要做声明coding=utf-8,python3已经默认系统中有coding=utf-8的编码格式print语句在python2......
  • python-03
    1、if判断语句1.单分支 :如果 。。。。否则就。。。。 if  +条件判断   如果满足条件就执行语句1     语句1 else:           否则就执行语......