Iterable和Iterator

本文探讨了可迭代对象(Iterable)与迭代器(Iterator)的概念。可迭代对象包括list、tuple、dict、set、str和生成器,可以用isinstance()判断其可迭代性。而迭代器可通过next()函数获取序列中的下一个元素,但list、dict、str等虽是Iterable,却不是Iterator。使用iter()函数可将这些Iterable转化为Iterator。Python的for循环依赖于迭代器的next()函数,其执行过程是惰性的,仅在需要时计算下一个数据,这使得Iterator能处理无限大或不可预知长度的数据流。
摘要由CSDN通过智能技术生成

可以直接作用于for循环的数据类型:

①集合数据类型:list、 tuple、 dict、 set、 str

②generator:生成器、带有yield的generator function

这些可以直接作用于for循环的对象统称为可迭代对象:Iterable

可以使用 isinstance()判断一个对象是否是 Iterable 对象,实例如下:

#   _*_ coding:utf-8 _*_
from typing import Iterable

__author__ = 'admin'

g = (x for x in range(10))
print(isinstance(g, Iterable))

输出结果:True

#   _*_ coding:utf-8 _*_
from typing import Iterable

__author__ = 'admin'

g = []
print(isinstance(g, Iterable))

输出结果:True

 

可以被 next()函数调用并不断返回下一个值的对象称为迭代器:Iterator

可以使用 isinstance()判断一个对象是否是 Iterator对象,实例如下:

 

#   _*_ coding:utf-8 _*_
from typing import Iterable, Iterator

__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值