Python进阶 迭代器的使用
1.什么是“迭代”
迭代是访问集合元素的一种方式,能够通过for…in…方式遍历列表、元组、字典,依次拿到其中数据进行使用,这种方式称之为遍历,也叫迭代。
2.可迭代对象
能够被for…in… 遍历的对象称之为可迭代对象。
一个对象具备 iter()方法,就是可迭代对象。
3. 迭代器
对象中既定义了 __iter()方法有定义了__next()方法,就是迭代器。
4.迭代器与可迭代对象之间的关系
迭代器一定是可迭代对象,可迭代对象不一定是迭代器。
5. 迭代器的简单使用
#迭代器使用
class A(object):
def __init__(self, list):
self.list = list
self.i = 0
def __iter__(self):
return self
def __next__(self):
self.i += 1
print("i:%d,list读到第:%d" % (self.i, len(self.list)))
if self.i == len(self.list):
raise StopIteration
return self.list[self.i]
a = [1, 2, 3, 4, 5]
iterA = A(a)
for temp in iterA:
print(temp)
6.验证迭代器
from collections import Iterable, Iterator
# 迭代器使用
class A(object):
def __init__(self, list):
self.list = list
self.i = 0
def __iter__(self):
return self
# def __next__(self):
# self.i += 1
# print("i:%d,list读到第:%d" % (self.i, len(self.list)))
# if self.i == len(self.list):
# raise StopIteration
# return self.list[self.i]
a = [1, 2, 3, 4, 5]
iterA = A(a)
print(isinstance(iterA, Iterator)) # 判断是否是迭代器
print(isinstance(iterA, Iterable)) # 判断是否是可迭代对象
通过后两行的代码判断是否为迭代器,或是可迭代对象.