python(15)——迭代和迭代器
#迭代:通过for循环遍历对象的每一个元素的过程
#可迭代的数据类型:
'''
list
tuple
dict
set
string
bytes
'''
#判断对象是否可以迭代?——》collections模块的Iterable类型来判断
from collections import Iterable #字符串 result = isinstance('abc',Iterable) print(result) #列表/元组 result=isinstance([1,2,3],Iterable) print(result) #字典 result=isinstance({'a':'A','b':'B'},Iterable) print(result) #集合 result=isinstance((1,2,3,4),Iterable) print(result) #整数是否可迭代 result=isinstance(123,Iterable) print(result)
#迭代器
'''
1.迭代器是一种可以被遍历的对象,并且能作用于next()函数
2.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问结束
3.迭代器只能往后遍历不能回溯(列表可以取前面数据,也可以取后面的数据)
4.迭代器通常要实现的两个基本方法:iter()和next()
#iter()创建迭代器对象
#next()获取迭代器的下一个元素,当后面没有元素可以获取的时候,弹出错误StopIteration
'''
#字符串,列表或元组对象,甚至自定义对象都可以用于创建迭代器 lis=[1,2,3,4] #使用python内置的iter()方法创建迭代器对象 it=iter(lis) print(it) #使用next()方法获取迭代器的下一个元素 result =next(it) print(result) result =next(it) print(result) result =next(it) print(result) result =next(it) print(result) #result =next(it) #print(result) #使用for循环遍历迭代器 lis=[1,2,3,4] it=iter(lis) for i in it: print(i,end=' ')
'''
1.迭代器类似于有序序列,但无法知道迭代器的长度,只能通过next()得到下一个元素
2.迭代器可以节省内存和空间
'''
#迭代器和可迭代的区别
'''
1.凡是可以作用于for循环的对象都是可以迭代的类型
2.凡是可以作用于next()函数的对象都是迭代器类型
3.list/dict/str等是可以迭代的但不是迭代器,无法使用next()函数无法调用,但可以通过iter()函数将它们转换成迭代器。
'''