news 2026/8/28 7:58:25

python基础语法学习: 迭代器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python基础语法学习: 迭代器

文章目录

  • 迭代器
    • 获取迭代器的方案
      • iter()
      • `__iter__()`
    • 从迭代器中拿到数据的方案
      • next()
      • `__next__()`
    • 模拟for循环的工作原理
    • 迭代器的特性

迭代器

首先请看以下代码:

forcin'hello':print(c)

要使用for c in这种形式进行遍历, 对象一定要是可迭代的东西(iterable), 例如: str, list, tuple, dict, set, open()

可迭代的数据类型都会提供一个叫迭代器的东西, 这个迭代器可以帮我们把数据类型种的所有数据一个一个拿出来

获取迭代器的方案

iter()

iter()内置函数可以直接拿到迭代器

it=iter("hello")print(it)# <str_ascii_iterator object at 0x00000280FF552530>

__iter__()

__iter__()特殊方法

s='hello'it=s.__iter__()print(it)# <str_ascii_iterator object at 0x0000011BEDB92530>

从迭代器中拿到数据的方案

next()

使用next()内置函数

it=iter("hello")print(next(it))print(next(it))print(next(it))print(next(it))print(next(it))print(next(it))# 报错, StopIteration

注意: 这里迭代器超出对象的范围就会报错

迭代器停止了,就不可以从迭代器中拿数据了

__next__()

s='hello'it=s.__iter__()print(it.__next__())print(it.__next__())print(it.__next__())print(it.__next__())print(it.__next__())print(it.__next__())# 报错 StopIteration

模拟for循环的工作原理

s="helo"it=iter(s)whileTrue:try:data=next(it)print(data)exceptStopIteration:break

下面的代码是一段错误代码

forcin123:pass

for循环中一定是要拿迭代器的, 所有不可迭代的东西不能用for循环

迭代器统一了所有不同数据类型的遍历方式

迭代器本身也是可迭代的

s='hello world'it=s.__iter__()forminit:print(m)

迭代器的特性

  • 迭代器只能向前不能反复
  • 迭代器本身是可迭代的
  • 迭代器特别节省内存
  • 惰性机制
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 7:57:25

导师严选!盘点2026年风靡全网的一键生成论文工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂的一键生成论文工具&#xff0c;实测提速效果惊人&#xff0c;覆盖选题构思、文献综述、数据整理、格式排版等全流程场景&#xff0c;真正帮你高效搞定论文写作。 一、全流程王者&#xff1a;一站式搞定论文全链路&…

作者头像 李华
网站建设 2026/8/28 7:55:17

WebGPU玻璃材质实战:双Pass离屏渲染与WGSL着色器实现透明折射效果

透明物体是 3D 渲染里最容易“翻车”的效果之一。尤其是在 Web 端做可视化大屏、3D 编辑器或产品展示时&#xff0c;玻璃、水晶、水面这类材质&#xff0c;用传统 WebGL 实现&#xff0c;要么靠透明度混合硬撑&#xff0c;要么写一堆后处理扩展&#xff0c;效果还未必可控。很多…

作者头像 李华
网站建设 2026/8/28 7:54:51

数据结构精讲:单链表的操作

一.链表基础&#xff08;单链表&#xff09;1. 物理结构与逻辑结构逻辑结构&#xff1a;线性结构&#xff0c;元素一个接一个排列。物理结构&#xff1a;非连续、非顺序存储。各节点独立分布在内存&#xff08;堆&#xff09;中。比喻&#xff1a;火车车厢。每节车厢独立&#…

作者头像 李华
网站建设 2026/8/28 7:53:57

模型不听话

提示词不够强硬&#xff1a; 你可能在系统提示词里写了“你是一个天气助手”&#xff0c;但没有明确告诉它&#xff1a;“当用户询问天气时&#xff0c;你必须调用 get_weather 工具&#xff0c;而不是直接回答。”模型理解偏差&#xff1a; 对于简单的天气问题&#xff08;如“…

作者头像 李华
网站建设 2026/8/28 7:52:30

MATLAB正态拟合直方图:从数据可视化到统计特征提取

1. 项目概述&#xff1a;从数据直方图到统计洞察 当你拿到一组实验数据、用户行为记录或者任何观测值时&#xff0c;第一反应是什么&#xff1f;对于很多理工科背景的朋友&#xff0c;尤其是学生和科研工作者&#xff0c;用MATLAB画个直方图&#xff08;Histogram&#xff09;看…

作者头像 李华