python创建生成器以及访问的方法详解

 更新时间:2023年11月03日 10:43:18   作者:惊瑟  
这篇文章主要介绍了python创建生成器以及访问的方法详解,与列表一次性地将数据全都加载到内存不同的是,生成器使用推断加载数据,每次只推断出一个对象,在数据量比较大时,可以节省内存,需要的朋友可以参考下

前言

与列表一次性地将数据全都加载到内存不同的是,生成器使用推断加载数据,每次只推断出一个对象,在数据量比较大时,可以节省内存。

这篇文章简单总结下创建生成器的方法,并用举一个生成器在斐波那契应用的例子。

一、创建生成器以及访问的方法

1. map

iter1 = map(lambda x:x, [0,1,2])

2. ()

iter2 = (x for x in range(3))

3.使用yield

def iter3():
    for i in range(3):
        yield i

看下它们的类型:

iter1 type is: <class 'map'>
iter2 type is: <class 'generator'>
iter3() type is: <class 'generator'>

其中,map类型也是生成器类型。如何访问一个生成器?以iter1为例,有以下方法:

# 1.一个个访问
print(next(iter1)) 

 # 2.使用for访问
for i in iter1:
    print(i)
    break
    
# 3.转化为列表访问
print(list(iter1)) 

输出:

0
1
[2]

二、生成器的应用

使用迭代法来求解斐波那契数列:

# 使用生成器构菲波那契数列,数列下标从1开始
def fib(n):
    a,b,i = 0,1,0
    while i<n:
        yield b
        a,b = b,a+b
        i += 1

def get_fib(n):
    # 此时fib(n)是一个生成器
    gener = fib(n)
    for i in range(n-1):
        next(gener)
    return next(gener)

print(get_fib(3))

到此这篇关于python创建生成器以及访问的方法详解的文章就介绍到这了,更多相关python生成器及访问方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python3.9之你应该知道的新特性详解

    python3.9之你应该知道的新特性详解

    这篇文章主要介绍了python3.9之你应该知道的新特性详解,需要的朋友可以参考下
    2021-04-04
  • Docker部署Python爬虫项目的方法步骤

    Docker部署Python爬虫项目的方法步骤

    这篇文章主要介绍了Docker部署Python爬虫项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python之lambda匿名函数及map和filter的用法

    Python之lambda匿名函数及map和filter的用法

    今天小编就为大家分享一篇关于Python之lambda匿名函数及map和filter的用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Python: glob匹配文件的操作

    Python: glob匹配文件的操作

    这篇文章主要介绍了Python: glob匹配文件的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Python压缩和解压缩zip文件

    Python压缩和解压缩zip文件

    这篇文章主要介绍了Python压缩和解压缩zip文件,本文直接给出实例代码,需要的朋友可以参考下
    2015-02-02
  • Python使用tempfile安全、优雅地处理临时文件与临时目录

    Python使用tempfile安全、优雅地处理临时文件与临时目录

    这篇文章主要介绍了Python标准库tempfile模块的使用,从核心API、底层行为、跨平台差异,到生产环境中的常见误区与最佳实践,全面解析了如何安全、高效地使用临时文件,需要的朋友可以参考下
    2026-03-03
  • Python自动化实现Word到图片的转换指南

    Python自动化实现Word到图片的转换指南

    在日常工作中,我们经常会遇到需要将Word文档内容以图片形式展示的场景,本文将深入探讨如何利用Spire.Doc for Python这一库,将Word文档轻松转换为高质量图片,感兴趣的小伙伴可以了解下
    2026-01-01
  • Python列表的索引与切片

    Python列表的索引与切片

    这篇文章主要介绍了Python列表的索引与切片,索引用来对单个成员(元素)进行访问,切片则是对一定范围内的成员(元素)进行访问。下文相关自来需要的小伙伴可以参考一下
    2022-04-04
  • python3里gbk编码的问题解决

    python3里gbk编码的问题解决

    本文主要介绍了python3里gbk编码的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 用Python手把手教你实现2048小游戏

    用Python手把手教你实现2048小游戏

    感觉好久没和大家一起写小游戏玩了,今天恰巧有空.这次我们来用Python做个2048小游戏吧.废话不多说,文中有非常详细的代码示例,需要的朋友可以参考下
    2021-06-06

最新评论