迭代

1. 什么是迭代?

使用for循环遍历取值的过程叫做迭代,比如:使用for循环遍历列表获取值的过程

for value in [1, 2, 3, 4]:print(value)

2. 可迭代对象

使用for循环遍历取值的对象叫做可迭代对象, 比如:列表、元组、字典、集合、range、字符串

3. 判断对象是否是可迭代对象

#元组,列表,字典,字符串,集合,range都是可迭代的对象
from collections import Iterable   #Iterable可迭代对象
#判断对象是否是指定类型
result = isinstance((3, 5), Iterable)
print("元组是否是可迭代对象:", result)result = isinstance([3, 5], Iterable)
print("列表是否是可迭代对象:", result)result = isinstance({"name": "张三"}, Iterable)
print("字典是否是可迭代对象:", result)result = isinstance("hello", Iterable)
print("字符串是否是可迭代对象:", result)result = isinstance({3, 5}, Iterable)
print("集合是否是可迭代对象:", result)result = isinstance(range(5), Iterable)
print("range是否是可迭代对象:", result)result = isinstance(5, Iterable)
print("整数是否是可迭代对象:", result)#提示: 以后还根据对象判断是否是其它类型,比如以后可以判断函数里面的参数是否是自己想要的类型
result = isinstance(5, int)
print("整数是否是int类型对象:", result)class Student(object):passstu = Student()
result = isinstance(stu, Iterable)print("stu是否是可迭代对象:", result)result = isinstance(stu, Student)print("stu是否是Student类型的对象:", result)

4. 自定义可迭代对象

自定义可迭代对象: 在类里面定义__iter__ 方法创建的对象就是可迭代对象

自定义可迭代类型代码

#自定义一个类去判断当前的类是否可以被迭代
from  collections import Iterable  # 可迭代的对象#自定义可迭代对象: 在类里面定义__iter__方法创建的对象就是可迭代对象
class MyIter(object):def __iter__(self):# 可迭代对象的本质:遍历可迭代对象的时候其实获取的是可迭代对象的迭代器, 然后通过迭代器获取对象中的数据pass#得到一个对象
my_iter = MyIter()print(isinstance(my_iter, Iterable))
#这个类是一个可迭代的对象,但是他还不能被迭代,因为他没有返回迭代的数据
#如果你要使用for,那么你一定要是一个迭代器对象,迭代器前提是你是可迭代的对象,但是再加一个返回数据for temp in my_iter:print(temp)

执行结果:

True
Traceback (most recent call last):File "自定义可迭代对象.py", line 19, in <module>for temp in my_iter:
TypeError: iter() returned non-iterator of type 'NoneType'
[Finished in 0.2s]

通过执行结果可以看出来,遍历可迭代对象依次获取数据需要迭代器

小结

在类里面提供一个__iter__创建的对象是可迭代对象,可迭代对象是需要迭代器完成数据迭代的。

理解python中的迭代相关推荐

  1. 更深入理解 Python 中的迭代

    (点击上方公众号,可快速关注) 编译: linux中国 / MjSeven   英文:  Trey Hunner https://linux.cn/article-9681-1.html 深入探讨 P ...

  2. python迭代是什么意思_如何理解python中的迭代

    迭代:是通过重复执行的代码处理相似的数据集的过程,并且本次迭代的处理数据要依赖上一次的结果继续往下做,上一次产生的结果为下一次产生结果的初始状态,如果中途有任何停顿,都不能算是迭代.例如: (1)非迭 ...

  3. python iterable对象_如何理解Python中的iterable对象

    转载请注明出处:https://www.jianshu.com/u/5e6f798c903a [^*] 表示注脚,在文末可以查看对应连接,但简书不支持该语法. 首先,容器和 iterable 间没有必 ...

  4. 理解 Python 中的 for 循环

    译者注: 本文翻译自 Trey Hunner 于 2019 年 6 月 18 日发表的文章 Loop Better: a deeper look at iteration in Python 文中括号 ...

  5. 理解Python中的yield

    理解Python中的yield 参考文献 本文浅谈自己对Python中yield关键字的理解. yield可以理解成return,但是它与return又不完全相同.在Python中,yield关键字是 ...

  6. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  7. python中元组_理解python中的元组

    理解 python 中的元组 引言 在 Python 中元组是这样的: 元组是是这样一种数据结构:不变的或者不可改变的(简单来说不能重新赋值) .元素的有序序列.因为元组是 不变的,所以他的数值是不能 ...

  8. python中继承是什么意思_如何理解Python中的继承?python入门

    如何理解Python中的继承?如今,python编程语言深受企业和个人的喜爱.python开发工程师是近年来互联网行业非常热门的职业岗位之一.学习python的人除了零基础的,还有一部分是在职运维.在 ...

  9. python装饰器作用-理解python中的装饰器

    一 什么是装饰器? 正如其名,装饰器的作用是为已经存在的对象增加额外功能(装饰),由此可使已有函数在无需代码改动的情况下增加额外功能:装饰器的本质是嵌套的函数且返回函数对象,即闭包.有关闭包的概念,可 ...

最新文章

  1. 指定动态分区_重点解析!2021湖南中级职称评审动态趋势
  2. 智能车竞赛第十六届比赛参赛同学提问-环境参数-5月15
  3. 18岁双料竞赛金牌得主邓明扬:我只是数学初学者,求在MIT“活”下去
  4. C++中自定义比较函数和重载运算符总结
  5. python内置变量__complex___Python 内置方法
  6. OpenCV用代码解释单应性的基本概念
  7. java 输出数据类型_输入输出和java数据类型
  8. java中如何确定是数字_java中怎么判断指定的数据是字符串是否是数字?
  9. 浏览器中关于事件的那点事儿
  10. SAP CRM Fiori 标准应用 My Account - search by ID 根据 ID 进行搜索的标准功能实现原理
  11. qt 调用qpainter_在Qt5.4中如何实现QOpenGLWidget和QPainter混合编程
  12. android launcher 字体大小,Android6.0 Launcher3 修改app字体大小
  13. 【MySQL】MySQL常见的读写分离方法
  14. harbor 多端口_安装Harbor并修改默认使用的80端口
  15. C++ 泛型模板进阶
  16. Js和jQuery的文档就绪函数以及执行次数
  17. 把3000行代码重构成15行的牛逼操作!!!
  18. Java入门需要了解(面向对象之接口-十四)
  19. MADlib——基于SQL的数据挖掘解决方案(7)——数据转换之其它转换
  20. INFLUXDB-influxDB一些查询语法你必须知道

热门文章

  1. uniapp扫码功能兼容h5
  2. 浅谈Jmeter性能测试流程
  3. 高级程序员、研发Leader、技术总监、首席架构师、CTO的区别
  4. 【智慧农场V2.1.1】功能模块+亲测版+农场租地种植+畜牧领养+智慧农场商城+农场直播小程序+认养农业
  5. 冲压模具的费用最全计算公式及例子说明
  6. 毕业设计的问卷数据处理
  7. 微信分支付免押租借_小程序版本
  8. 花一万个小时练习 Coding,不要浪费一万小时无谓地 Debugging
  9. 16个掘金量化社区的热门话题,送给各位Quant的量化交易干货
  10. 武汉理工计算机与自动化专业哪个好,武汉理工大学电气工程及其自动化专业怎么样...