首页 > 其他分享 >可迭代对象,迭代器对象,for循环本质

可迭代对象,迭代器对象,for循环本质

时间:2023-08-08 22:33:50浏览次数:38  
标签:__ .__ 迭代 对象 iter next 本质

可迭代对象

# 可迭代对象
#数据对象有__iter__方法的都称为可迭代对象
1.内置方法 通过加点的方式可以调用的方法
2.__iter__ 读作:双下 iter 对象
3.不可迭代对象:int ,float
4.可迭代对象:str , list , dict , tuple, set , f.__iter__文件对象
5.可迭代的含义
"""
迭代:每一次更新都依赖上一次的结果
可以理解为是否支持for循环
"""

迭代器对象

#迭代器对象
#是由可迭代对象调用__iter__方法产生的
1.迭代器对象判断依据为:是否有"__iter__和__next__方法"
2.迭代器对象的作用:提供了一种"不依赖索引取值的方式"
"正因为有迭代器的存在,我们的字典和集合才能够被for循环"
例:c="hello"
reu=c.__iter__() # 迭代器对象
print(reu.__next__()) # 通过next拿值
print(reu.__next__())
print(reu.__next__())
"其实就是for循环的本质"
3.
# 简写
iter() # __iter__()
next() # __next__()

for循环的本质理解

for循环常用格式:
for 变量名 in 可迭代对象
	循环体代码
"""
1.先将in后面的数据.__iter__ 转变为迭代器对象
2.依次让迭代器对象调用__next__取值
3.一旦__next__取不到值报错 for循环会自动处理
"""

 

标签:__,.__,迭代,对象,iter,next,本质
From: https://www.cnblogs.com/abc683871/p/17615557.html

相关文章

  • 事件对象
    事件对象介绍事件对象:当事件发生的时候,浏览器会创建一个事件对象,这个对象包含了当前事件发生时的所有信息事件对象是一个全局对象,在事件发生时,浏览器会创建一个事件对象,并把它作为实参传递给事件处理函数,事件处理函数通过事件对象,可以获取到事件发生时的相关信息,如鼠标位置......
  • 迭代器模式
    我们登上并非我们选择的舞台,演出并非自己选择的剧本。——爱比荷泰**迭代器模式:**提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访......
  • 《VTK图形图像开发进阶》第3章VTK基本数据结构——数据对象和数据集
    3.1可视化数据的基本特点离散性数据具有规则或不规则的结构(结构化与非结构化)数据具有维度3.2数据对象和数据集vtkDataObject下图为vtkDataObject类的继承图vtkDataSetVTK里与数据集对应的类是vtkDataSet,该类从vtkDataObject直接派生。vtkDataSet由两个部分组成,即组织......
  • history对象
      ......
  • 使用ceph的对象存储
    Ceph对象存储Ceph对象存储使用Ceph对象网关守护进程(radosgw),它是个与Ceph存储集群交互的FastCGI模块。因为它提供了与OpenStackSwift和AmazonS3兼容的接口,RADOS要有它自己的用户管理。Ceph对象网关可与CephFS客户端或Ceph块设备客户端共用一个存储集群。S......
  • location对象常见属性
       ......
  • 数据查询解决列名和java对象属性名对不上——三种方法
    问题描述:当使用查询语句时,返回来的数据出现null值。下面是数据库映射文件代码查询语句:<selectid="selectCarById"resultType="com.powernode.mybatis.pojo.Car">select*fromt_carwhereid=#{id}</select>下面是返回查询返回数据 原因是:查询结果集的列名:id,c......
  • JS实现根据数组对象的某一属性排序
    一、冒泡排序(先了解冒泡排序机制)以从小到大排序为例,冒泡排序的原理就是通过两层循环把数组中两两相邻的元素进行比较,是的大的元素放到后边,元素交换位置,从而一步步的交换元素的位置,使得最大的元素放到数组的末尾,这样内部的循环就进行了一轮,再根据外部的循环依次再把次大一点的元素......
  • C++类和对象_继承
    继承概述作为面向对象的三大特性之一,继承(inheritance)是面向对象编程中代码复用的一种重要手段。继承是类设计层面的一种复用,它允许在保证原有类性质不变的基础上对其进行扩展新的属性和功能,产生新的类。例如,在类person中定义关于‘人’的基本属性和行为,以person为基础扩展......
  • ASP.NET Core对象池
    【C#/.NET】使用ASP.NETCore对象池 NugetMicrosoft.Extensions.ObjectPool 使用对象池的好处减少初始化/资源分配,提高性能。这一条与线程池同理,有些对象的初始化或资源分配耗时长,复用这些对象减少初始化和资源分配。比如:我有一个执行耗时约500毫秒,内存空间2KB的任务......