【无为则无心&Python基础】— 73、Python中的迭代器

本文介绍了Python中的迭代概念,阐述了迭代与遍历的区别。接着讲解了迭代器的概念,它是一种工具,能屏蔽不同容器遍历的细节差异。迭代器的优点在于节省内存空间,按需生成元素。可迭代对象(Iterable)是指实现了方法的对象,如集合和序列类型。文章还讨论了如何将可迭代对象转换为迭代器对象,并提供了使用迭代器的基本用法和实际应用示例。
摘要由CSDN通过智能技术生成

1、迭代的概念

(1)什么是迭代

迭代就是单向地、逐个地访问某个容器中的元素的行为。 简单说迭代就是循环。

(2)迭代和遍历的区别

迭代是遍历的一种特例,遍历(traverse)是可以在数据结构上来回的游走,不仅可以往前,还可以往后,同时还能保证不重不漏的,迭代是单向的,逐个的,而且只来一次。

2、迭代器的概念

(1)概念

Python中常见的序列有listtuplesetdictstr,我们也称之为容器。

我们之前在遍历这些容器的时候,针对不同的容器,每次写的代码还都有所差别。于是我们想能不能写一个工具,当我们需要对一个容器中的元素,进行单向的,一个接一个的取出来的时候,就调用这个工具。

这个工具可以帮我们把不同容器遍历细节上的不同屏蔽掉,当我们需要这个操作的时候,就把容器直接传给这个工具就好了,而这个工具就叫迭代器。

(2)优点
  • 从序列类型中一个一个的取值,会把所有的值都取到。
  • 节省内存空间,迭代器并不会在内存中占用一大块内存,面是随着循环每次生成一个,每调用一次next方法就会返回给我一个元素

3、可迭代的对象(Iterable)

(1)什么是可迭代的对象(Iterable)

简单的说,一个对象只要实现了只要实现了__iter__()方法,就是一个可迭代的对象。

可以使用isinstance()判断一个对象是否是Iterable对象:

(2)Python中常见的可迭代数据类型
  1. 集合或序列类型(如listtuplesetdictstr
  2. 文件对象(以后扩展)
  3. 在类中定义了__iter__()方法的对象,可以被认为是 Iterable对象,

示例:

from collections.abc import Iterable

print(isinstance('', Iterable))  # true 字符串是可迭代的
print(isinstance([], Iterable))  # true 列表是可迭代的
print(isinstance((), Iterable))  # true 元组是可迭代的
print(isinstance({
   }, Iterable))  # true 字典是可迭代的
print(isinstance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值