在 Python 中,迭代器(Iterator)和可迭代对象(Iterable)是两个重要的概念,它们用于遍历序列或集合中的元素。
迭代器是一个可以逐个读取序列或集合中的元素的对象。迭代器只能向前遍历,不能后退,并且只能读取一次。迭代器通常使用__iter__
方法和__next__
方法来实现。
可迭代对象是一个可以被迭代器遍历的对象。可迭代对象通常使用__iter__
方法来实现。
下面是一个示例,展示了迭代器和可迭代对象的概念:
# 定义一个迭代器
class MyIterator:
def __init__(self):
self.count = 0
def __iter__(self):
return self
def __next__(self):
if self.count == 5:
raise StopIteration
self.count += 1
return self.count
# 定义一个可迭代对象
class MyIterable:
def __init__(self):
self.elements = [1, 2, 3, 4, 5]
def __iter__(self):
return iter(self.elements)
# 使用迭代器遍历元素
iterator = MyIterator()
for element in iterator:
print(element)
# 使用可迭代对象遍历元素
for element in MyIterable():
print(element)
在这个示例中,MyIterator
类是一个迭代器,它可以逐个读取[1, 2, 3, 4, 5]
列表中的元素。MyIterable
类是一个可迭代对象,它可以被MyIterator
迭代器遍历。
需要注意的是,迭代器和可迭代对象是一种抽象的概念,它们可以实现为不同的数据结构,如列表、元组、字符串、文件、网络连接等。