迭代器模式:一种惰性获取数据项的方式,即按需一次获取一个数据项。

关于迭代器和生成器的区别:

在Python社区中,大多数时候把迭代器和生成器视为同一概念。

如果需要细分的话,那么迭代器用于从集合中取出数据,而生成器用于凭空生成元素。

一、序列

所有序列都是可以迭代的。我们接下来要实现一个 Sentence(句子)类,我们向这个类的构造方法传入包含一些文本的字符串,然后可以逐个单词迭代。

sentence.py

import re

import reprlib

RE_WORD = re.compile('\w+')

class Sentence:

def __init__(self, text):

self.text = text

self.words = RE_WORD.findall(text) # re.findall 函数返回一个字符串列表

def __getitem__(self, index):

return self.words[index]

def __len__(self):

return len(self.words)

def __repr__(self):

return 'Sentence(%s)' % reprlib.repr(self.text) # reprlib.repr 函数用于生成大型数据结构的简略字符串表示形式

接下来测试 Sentence 实例能否迭代

In [11]: s = sentence.Sentence("'winter is coming!', he said.")

python中迭代是什么意思_Python中的“迭代”详解相关推荐

  1. python中shutil是什么意思_python之shutil模块详解

    -- --High-level file operations  高级的文件操作模块. os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目 ...

  2. python中if else语句用法_Python If-else语句用法详解

    本文概述 决策是几乎所有编程语言中最重要的方面.顾名思义, 决策制定使我们可以为特定决策运行特定代码块.在此, 将根据特定条件的有效性做出决定.条件检查是决策的基础. 在python中, 决策由以下语 ...

  3. python列表的内置方法_Python内置方法详解

    1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名.可以查看所有的字符串的内置方法,如: 1> count: ...

  4. python变量类型是动态的_python内存动态分配过程详解

    一.前言 大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前.其他语言,想C++和java,允许"随时随地"声明变量, ...

  5. 用python处理excel的基本语法_Python对Excel操作详解

    Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl tco ...

  6. python开发报表系统详细操作流程_python实现报表自动化详解

    本篇文章将介绍: xlwt 常用功能 xlrd 常用功能 xlutils 常用功能 xlwt写Excel时公式的应用 xlwt写入特定目录(路径设置) xlwt Python语言中,写入Excel文件 ...

  7. python爬虫代码实例源码_python爬虫及案例详解(附代码)

    安装三大库 1.requests 2.BeautifulSoup 3.lxml 有的网站做了相应的反爬虫,不能用普通方法爬取网站数据. 这里我用python爬取了几个网站的数据,分别存入csv文件,m ...

  8. python中lines是什么类型_python里的splitlines详解

    Python的split方法函数可以分割字符串成列表,默认是以空格作为分隔符sep来分割字符串. In [1]: s = "www jeapedu com" In [2]: pri ...

  9. python输入文字、成为字典_Python 字典(Dictionary)操作详解

    一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} ...

  10. python装饰器作用和功能_python装饰器大详解

    一.作用域 在python中,作用域分为两种:全局作用域和局部作用域. 全局作用域是定义在文件级别的变量,函数名.而局部作用域,则是定义函数内部. 关于作用域,我们要理解两点: a.在全局不能访问到局 ...

最新文章

  1. 14、Docker监控方案(Prometheus+cAdvisor+Grafana)
  2. Matlab计算多项式的值(数值)
  3. 网易云信给您拜年啦!
  4. 实现抢红包算法?如此简单
  5. 微软AirSim,一个无人机和机器人的模拟器
  6. 有人去瑞幸咖啡java_瑞幸股价暴跌,门店竟然爆单了
  7. Spring-Cloud的版本是如何定义的
  8. pycharm远程调试报错cant ser remote tunneling
  9. 开源GIS(九)——openlayers中简单要素的添加与geojson数据修改添加
  10. 避免野指针的方法及结构体小细节
  11. Hibernate中createCriteria即QBC查询的详细用法
  12. B站左程云算法视频中级班01
  13. 2008年(第五版)北大中文核心期刊目录
  14. 吉他指弹特殊调弦的方法及基础音阶知识
  15. SpringBoot exclude的使用
  16. 惠普HP Deskjet 1010 打印机驱动
  17. Android 强制设置横屏或竖屏
  18. HTML:给你的表单设置边框!
  19. spug上线服务踩坑记
  20. 服务器空间满了造成的麻烦

热门文章

  1. id_rsa和id_rsa.pub文件在哪里找
  2. 钛资本研究院:未来三到五年,中国企业服务赛道将呈现黄金时代的基础
  3. 基于单片机的自动喂食仿真设计(#0051)
  4. linux vad检测,VAD 文件扩展名: 它是什么以及如何打开它?
  5. BOOTSTRAP4的栅格系统详解
  6. [Unity3D]Unity3D游戏开发之怪物AI
  7. 公文写作有哪些书籍推荐
  8. 【Unity 粒子系统】Texture Sheet Animation Lights 模块
  9. 目前大数据技术平台有很多,主要可以分为哪几类?
  10. 使用FVD时遇到的问题记录:使用tensorflow时batch_size不变的情况下使用数据量更大的dataset发生了显存溢出(OOM)问题 的解决