首页 技术 正文
技术 2022年11月20日
0 收藏 641 点赞 2,748 浏览 857 个字

区别可迭代对象和迭代器

1、判断是否可以迭代

from collections import Iterable
def fid(times):
n = 0
a , b = 0,1
while n < times:
yield b
a,b = b , a+b
n += 1
return 'done'F = fid(10)
A = []
B = "asd"
print(isinstance(A,Iterable))
print(isinstance(B,Iterable))
print(isinstance(F,Iterable))

结果:

均为True

总结:凡是可以作用于for循环的对象都是Iterable类型,即可迭代对象

2、迭代器

from collections import Iterator
def fid(times):
n =
a , b = ,
while n < times:
yield b
a,b = b , a+b
n +=
return 'done'F = fid()
A = []
B = "asd"
print(isinstance(A,Iterator))
print(isinstance(B,Iterator))
print(isinstance(F,Iterator))

结果:

False
False
True

总结:凡是可以作用于next()函数的对象都是Iterator类型,也就是迭代器

3、可迭代对象转换为迭代器,iter()函数

from collections import Iterator
def fid(times):
n =
a , b = ,
while n < times:
yield b
a,b = b , a+b
n +=
return 'done'F = fid()
A = []
B = "asd"
print(isinstance(iter(A),Iterator))
print(isinstance(iter(B),Iterator))
print(isinstance(F,Iterator))

结果:

均为True

总结,可迭代类型可通过iter()函数获得一个迭代器

可迭代对象Iterable和迭代器Iterator最大的区别在于是否可作用于next()函数,它们均可作用于for循环

上一篇: python-模块详解
下一篇: CentOS 6.8 安装JDK8
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,031
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,520
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,368
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,148
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,781
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,860