Python3之3天极速入门五迭代器与生成器

2023-05-16


"""
Python3 迭代器与生成器
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象都可用于创建迭代器
在 Python 中,使用了 yield 的函数被称为生成器(generator)。
跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
调用一个生成器函数,返回的是一个迭代器对象。
"""
import sys
#迭代器
list = [1,2,3,4,5,6]
print('For遍历迭代器')

iter1 =  iter(list)
for x in iter1 :
    print(x)

print('Whike遍历迭代器')

iter2 = iter(list)
while True:
    try: print(next(iter2),end=" , ")
    except StopIteration:
        print("迭代器异常")
        break

#生成器
def fibonacci(n):  # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n):
            return
        yield a
        a, b = b, a + b
        counter += 1


f = fibonacci(10)  # f 是一个迭代器,由生成器返回生成

while True:
    try:
        print(next(f), end=" ")
    except StopIteration:
        sys.exit()
      
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3之3天极速入门五迭代器与生成器 的相关文章

随机推荐

  • linux用java -jar启动jar包缓慢问题

    1 首先查看linux服务器hostname 命令 xff1a less etc hostname 2 和下图展示是否一致 xff0c 如果一致 xff0c 直接跳转第4步 3 不一致时 xff0c 需要修改成一致 xff1a 修改命令 x
  • 使用Go语言编写命令行实用程序

    当今的计算机环境中 xff0c 命令行界面仍然是一种常用的工具 在一些特定的应用场景中 xff0c 如服务器管理 网络管理等 xff0c 命令行工具非常有用 在Go语言中 xff0c 我们可以很容易地编写命令行实用程序 xff0c 以帮助我
  • Anaconda报NotWritableError错时解决的方法

    Anaconda报NotWritableError错时解决的方法 出现的问题 最近在windows平台下使用Anaconda软件时遇到的这个问题 xff0c 百度了好久也没有找到这个错误的解决方法 xff0c 后面自己认真的看了下报错提示才
  • iOS UIBezierPath贝赛尔曲线详解

    UIBezierPath是在画图 xff0c 定制动画轨迹中都有应用 UIBezierPath主要用来绘制矢量图形 xff0c 它是基于Core Graphics对CGPathRef数据类型和path绘图属性的一个封装 xff0c 所以是需
  • C++字符串格式化的几种方式

    使用snprintf格式化字符串使用boost format格式化字符串使用stringstream格式化字符串 具体示例 使用snprintf格式化字符串 span class token macro property span clas
  • wampserver的安装与配置的详细过程:

    首先是百度网盘里wampserver exe的地址 xff1a 链接 xff1a https pan baidu com s 1NyqBb7CjSC6wDOhQQ34BUw 提取码 xff1a ntjn 安装过程 xff1a 下载好后 xf
  • 用paramiko包对远程服务器操作时报错paramiko.buffered_pipe.pipeTimeout

    最近在做服务端的一些自动化测试 xff0c 用到了python下的paramiko这个包连接远程服务器并执行一些操作 当我向服务器发送了一些命令 xff0c 准备接收返回结果的时候 xff0c 也就是用到了recv这个方法的时候会报错par
  • python 字符串里面提取变量的方法

    1 字符串拼接 比如单引号和2个 43 号里面的就是变量 2 占位符 S 有多个变量在后面逗号分隔即可
  • 树莓派Raspbian更新源(Debian)| 完整解决步骤

    转载自 xff1a 树莓派更新源更换 树莓派小无相系列 型号 xff1a 树莓派 3b 43 系统 xff1a Raspbian系统 xff08 Debian xff09 本质 xff1a 常见更新教程是更新 xff1a etc apt s
  • 【ABAQUS】hypermesh如何导出CEL网格到Abaqus

    Abaqus的CEL具备流固耦合分析能力 xff0c 有些朋友喜欢用hm进行网格划分 xff0c 但hm划分的欧拉体是无法直接导入到AbaqusCAE界面的 xff0c 本文提供导入方法如下 xff0c 希望对遇到问题的朋友有所帮助 第1步
  • 编译原理和技术 Lab 1 Lexical Analysis

    Lab 1 Lexical Analysis 1 Goal You are given A public repository of a incomplete project on Gitlab The URL is http 210 45
  • mybatis 的xml文件中调用java的方法

    1 使用场景 最近在做项目开发时 xff0c 遇到一个很棘手的问题 xff0c 前端传的搜索条件 xff0c 不能简单的作为查询条件 xff0c 直接传给后端 xff0c 而需要处理之后才可以作为条件 xff0c 拼接到sql中去 2 解决
  • 好用的工具分享

    1 比较好用的远程控制软件parsec Connect to Work or Games from Anywhere Parsec https parsec app 2 比较好用的JSON内容对比工具 JSON Compare Best J
  • mysql 将数据库表字段全部转为小写

    需求场景 xff1a 最近在开发项目时 xff0c 需要创建一张表 xff0c 发现别的库 xff0c 已经有人创建了 xff0c 于是便把建表语言拿过来 xff0c 直接建表 xff0c 但是有一件不爽的事 xff0c 原来创建表时 xf
  • python中 文件明明存在,但是os.path.exists 返回False

    文件明明存在 xff0c 但是用os path exists xff08 xff09 返回False xff0c 通过试验发现 xff0c 路径或者文件名中还有中文就会返回fasle xff0c 所以文件夹的名称或者文件名最好不要含有中文
  • redhat7.4安装ansible

    ansible是什么就不做介绍了 xff0c 网上一大堆 xff0c 在线安装也比较简单 xff0c 因为特别原因 xff0c 我们的服务器全部在内网运行 xff0c 所以必须采用离线安装 1 ansible安装方式有 源码 pip yum
  • Android硬件通信之 串口通信

    一 xff0c 串口介绍 1 1 串口简介 串行接口简称串口 xff0c 也称串行通信接口或串行通讯接口 xff08 通常指COM接口 xff09 xff0c 是采用串行通信方式的扩展接口 xff1b 串行接口 xff08 SerialIn
  • 【环境配置 skills】sublime 配置 MinGW 搭建 C/C++ 编程环境

    sublime 配置 MinGW 搭建 C C 43 43 编程环境 当安装好 MinGW 和 sublime text 后 xff0c 执行下面2个动作 xff1a 按照菜单 Tools 61 61 gt Build System 61
  • 【Java】npm 国内下载慢的问题解决

    打开 cmd 命令窗口使用淘宝 npm 镜像定制的 cnpm gzip 压缩支持 命令行工具代替默认的 npm xff1b 安装 cnpm 命令 xff1a npm install g cnpm registry 61 https regi
  • Python3之3天极速入门五迭代器与生成器

    34 34 34 Python3 迭代器与生成器 迭代是Python最强大的功能之一 xff0c 是访问集合元素的一种方式 迭代器是一个可以记住遍历的位置的对象 迭代器对象从集合的第一个元素开始访问 xff0c 直到所有的元素被访问完结束