此页面的目的是演示 2 个迭代协议的动态:
- 可迭代
- 迭代器
1. 但首先(添加令人困惑的相似单词),让我们解决迭代问题
- 迭代 - 当然 - 是从源中逐项获取项目并依次对每个项目执行某些操作
- 在Python中,这常用在
- a) for/while 循环和
- b) 理解
- 默认情况下 - 这些结构迭代整个结构
- 然而,有时可能需要更细粒度的控制 - 就像在生成器中
- 为此,有 2 个重要的概念/协议,Python 的大部分都是在它们之上构建的:
- a) 可迭代对象
- b) 迭代器对象
- 两者都反映在标准Python协议中
- 这不是额外的东西:实际上,for/while 循环和推导式直接构建在迭代协议的这些较低级别元素上
2. ITER() 方法从可迭代对象创建迭代器
- 可迭代对象(对象的集合或流)是可以传递到内置 iter() 函数的任何对象
- 一旦传递了内置的 iter() 函数,它就会返回一个传递类型的 迭代器对象,即创建一个字符串迭代器
>>> example_iterator = iter('abc') >>> example_iterator <str_iterator object at> </str_iterator>
- 请注意,迭代器是一个隐式序列对象,提供顺序(不是随机!)对底层顺序数据集的访问
- 例如范围对象本身不是迭代器
- 迭代器不允许访问底层序列的任意元素
- 它们仅提供对系列下一个元素的访问
- 它们提供顺序访问
<!-- THIS IS NOT AN ITERATOR --> >>> r = range(10)[5] >>> r 5
3. NEXT() 函数从迭代器返回下一个值
- 内置的 next() 需要一个 迭代器 对象 - 它返回集合迭代中的下一个值
- 迭代器由 2 个组件组成:
- 检索集合的下一个元素的机制
- 表示系列结束的机制
在具有内置对象系统的编程语言中,这种抽象通常对应于可以由类实现的特定接口
- next() 允许按要求依次考虑每个项目 - 而不是从开始到结束的整个系列
- 有2个消息迭代器接口包括
- 下一个 → 查询下一个元素
- iter → 返回迭代器
- 约束:迭代器只能迭代一次
4. 课堂示例 - 从可迭代到迭代器再到停止迭代异常
- Python 会随意引发 StopIteration 类型的 异常
>>> example_iterator = iter('abc') >>> example_iterator <str_iterator object at> </str_iterator>
5. 实际示例 - 对多个命令行输入进行单元测试
- 定义/获取可迭代对象,例如列表 ["20.01", "y"]
- 将可迭代对象传递给 iter() → 创建迭代器对象
- 将迭代器对象传递到 next() 中,以便每次在代码中调用输入函数时生成列表的下一个值
<!-- THIS IS NOT AN ITERATOR --> >>> r = range(10)[5] >>> r 5
- 第一次遇到input()时,传递的是“20.01”值,
- 第二次是“y”
- 第三次就例外了
6. 链接
- https://mypy.readthedocs.io/en/stable/protocols.html#iteration-protocols
- 5.2 隐式序列 - Python 中的 SICP
以上是解释 Python 中的 Iterable 与 Iterator的详细内容。更多信息请关注PHP中文网其他相关文章!

toAppendElementStoApythonList,usetheappend()方法forsingleements,Extend()formultiplelements,andinsert()forspecificpositions.1)useeAppend()foraddingoneOnelementAttheend.2)useextendTheEnd.2)useextendexendExendEnd(

TocreateaPythonlist,usesquarebrackets[]andseparateitemswithcommas.1)Listsaredynamicandcanholdmixeddatatypes.2)Useappend(),remove(),andslicingformanipulation.3)Listcomprehensionsareefficientforcreatinglists.4)Becautiouswithlistreferences;usecopy()orsl

金融、科研、医疗和AI等领域中,高效存储和处理数值数据至关重要。 1)在金融中,使用内存映射文件和NumPy库可显着提升数据处理速度。 2)科研领域,HDF5文件优化数据存储和检索。 3)医疗中,数据库优化技术如索引和分区提高数据查询性能。 4)AI中,数据分片和分布式训练加速模型训练。通过选择适当的工具和技术,并权衡存储与处理速度之间的trade-off,可以显着提升系统性能和可扩展性。

pythonarraysarecreatedusiseThearrayModule,notbuilt-Inlikelists.1)importThearrayModule.2)指定tefifythetypecode,例如,'i'forineizewithvalues.arreaysofferbettermemoremorefferbettermemoryfforhomogeNogeNogeNogeNogeNogeNogeNATATABUTESFELLESSFRESSIFERSTEMIFICETISTHANANLISTS。

除了shebang线,还有多种方法可以指定Python解释器:1.直接使用命令行中的python命令;2.使用批处理文件或shell脚本;3.使用构建工具如Make或CMake;4.使用任务运行器如Invoke。每个方法都有其优缺点,选择适合项目需求的方法很重要。

ForhandlinglargedatasetsinPython,useNumPyarraysforbetterperformance.1)NumPyarraysarememory-efficientandfasterfornumericaloperations.2)Avoidunnecessarytypeconversions.3)Leveragevectorizationforreducedtimecomplexity.4)Managememoryusagewithefficientdata

Inpython,ListSusedynamicMemoryAllocationWithOver-Asalose,而alenumpyArraySallaySallocateFixedMemory.1)listssallocatemoremoremoremorythanneededinentientary上,respizeTized.2)numpyarsallaysallaysallocateAllocateAllocateAlcocateExactMemoryForements,OfferingPrediCtableSageButlessemageButlesseflextlessibility。

Inpython,YouCansspecthedatatAtatatPeyFelemereModeRernSpant.1)Usenpynernrump.1)Usenpynyp.dloatp.dloatp.ploatm64,formor professisconsiscontrolatatypes。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。