Python–迭代器

区分:迭代器 Iterator 和可迭代对象Iterable

1、可迭代对象Iterable:可以直接作用于 for循环的对象统称为可迭代对象

1)可以直接作用于 for循环的数据类型有以下几种:

一类是集合数据类型,如 listtupledictsetstr等;

一类是生成器 generator,包括生成器和带 yield的g生成器函数

2)可以使用 isinstance()判断一个对象是否是 Iterable对象,如:

2、迭代器:可以被 next()函数调用并不断返回下一个值的对象称为迭代器

1)可以使用 isinstance()判断一个对象是否是 Iterator对象:

2)生成器都是迭代器对象,但 listdictstr虽然是可迭代对象,却不是迭代器

但是:可以使用 iter()函数将 listdictstr可迭代对象变成迭代器

实质上,for循环就是通过不断调用 next()函数实现的

加餐:

Python的 迭代器对象表示的是一个数据流,迭代器对象可以被 next()函数调用并不断返回下一个数据,直到没有数据时抛出 StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过 next()函数实现按需计算下一个数据,所以 迭代器的计算是惰性的,只有在需要返回下一个数据时它才会计算。迭代器甚至可以表示一个无限大的数据流,例如全体自然数。而使用list是永远不可能存储全体自然数的

Original: https://www.cnblogs.com/sunnytomorrow/p/13089389.html
Author: NorthFeng
Title: Python–迭代器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590721/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【Java代码之美】 — 通过Value获取Map中的键值Key的四种方法

    1.简介 最近在项目中遇到一个EasyExcel中需要取invokeHeadMap中headMap里面的具体列名的集合Index,就遇到了需要从Map从反向通过Value取对应的K…

    数据库 2023年6月6日
    0122
  • mysql中group by,having,order by,limit,distinct的用法和简单的的多表查询

    group:组 by:通过 group by :通过….。分组group by列名:通过指定列来分组 一般情况下在题目中出现 “每个” &#82…

    数据库 2023年6月16日
    0116
  • 单点登录(SSO)

    1 基础知识 单点登录机制(SSO)允许用户登录应用程序一次,并访问所有相关的系统,而不需要单独登录它们。 由于 SSO,用户只需登录一次即可使用服务,并自动登录到所有相关应用程序…

    数据库 2023年6月14日
    0160
  • 享受时间 拥抱 Linux

    生活上小闲心 用 游戏 影音 音乐 可以尝试 Window or Macos. 初期代码生涯推荐全面拥抱 Linux , 耐下心少学点, 多享受光 邵雍· 《清夜吟》 月到天心处,…

    数据库 2023年6月9日
    081
  • Mysql8设置允许root用户远程访问

    按照mysql8.0以前的方法修改报错 mysql> grant all privileges on *.* to ‘root’@’%’ identified by ‘PAS…

    数据库 2023年6月6日
    0111
  • 【转】 一条 SQL 的执行过程详解

    MySQL 体系架构 – 连接池组件 1、负责与客户端的通信,是半双工模式,这就意味着某一固定时刻只能由客户端向服务器请求或者服务器向客户端发送数据,而不能同时进行。 …

    数据库 2023年5月24日
    0101
  • linux学习之联网问题解决

    (centos7)linux隔日重启后发现无法联网解决方案 1.运行命令 ip addr 查看 ip地址 2.运行命令 vi /etc/sysconfig/network-scri…

    数据库 2023年6月16日
    091
  • 常见的dos命令

    常用快捷键 alt+f4 常见的dos命令 打开CMD的方式 开始+系统+命令提示符 win+R 输入cmd打开控制台 在任意文件夹下,按住shift+鼠标右键点击 资源管理器的地…

    数据库 2023年6月11日
    096
  • 项目要实现多数据源动态切换,咋搞?

    文章首发于公众号:BiggerBoy 原名:编程大道 在做项目的时候,几乎都会用到数据库,很多时候就只连一个数据库,但是有时候我们需要一个项目操作多个数据库,不同的业务功能产生的数…

    数据库 2023年6月11日
    0114
  • CompletableFuture的简单使用

    日常开发中,我们都会用到线程池,一般会用execute()和submit()方法提交任务。但是当你用过CompletableFuture之后,就会发现以前的线程池处理任务有多难用,…

    数据库 2023年6月14日
    093
  • Java中AES加密和解密的方法分享

    转自: http://www.java265.com/JavaJingYan/202206/16559759223818.html 下文笔者讲述java代码实现的AES加密和解密的…

    数据库 2023年6月11日
    094
  • 系统设计的11个考虑

    有了《系统架构的11条原则》,真正到设计阶段还有另外11个考虑。 系统正确性 考虑一:负负得正 假如我们看到某个代码,明显有逻辑错误,想随手改改。你就要考虑一件事情:这段明显有问题…

    数据库 2023年6月6日
    087
  • 数据结构知识详解 第一章 绪论

    知识框架 1. 数据结构的基本概念 1.1 基本概念和术语 1.1.1 数据 定义:是信息的载体,是描述客观事实属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的…

    数据库 2023年6月11日
    078
  • Hadoop生态一—分布式文件系统HDFS

    分布式文件系统: 统一管理分布在集群上的文件系统设计思想分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析; 在大数据系统中作…

    数据库 2023年6月6日
    089
  • SQL子查询:介绍及分类

    子查询指一个查询语句 嵌套在另一个查询语句内部的查询。 例如:挑选出 员工工资表中, 工资金额比”张三”高的 员工姓名及 工资:d SELECT &…

    数据库 2023年6月16日
    097
  • day03-3私聊功能

    多用户即时通讯系统03 4.编码实现02 4.4功能实现-私聊功能实现 4.4.1思路分析 客户端 – 发送者: 用户在控制台输入信息,客户端接收内容 将消息构建成Me…

    数据库 2023年6月11日
    065
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球