Python iterator.__iter__ 用法详解及示例
在Python中,迭代器是一种实现了__iter__和__next__方法的对象。迭代器可以用于遍历集合中的元素,像列表、字符串和字典等。__iter__方法返回迭代器本身,而__next__方法返回下一个元素。
下面是__iter__方法的语法:
def __iter__(self): # 返回自身 return self
接下来,我将给出三个示例来演示如何使用__iter__方法:
示例1:遍历列表
class ListIterator: def __init__(self, data): self.data = data self.index = 0 def __iter__(self): # 返回迭代器本身 return self def __next__(self): if self.index < len(self.data): # 返回下一个元素 element = self.data[self.index] self.index += 1 return element else: # 迭代结束时抛出StopIteration异常 raise StopIteration # 创建列表对象 my_list = [1, 2, 3, 4, 5] # 创建列表迭代器对象 my_iterator = ListIterator(my_list) # 遍历列表 for item in my_iterator: print(item)
示例2:遍历字符串
class StringIterator: def __init__(self, string): self.string = string self.index = 0 def __iter__(self): # 返回迭代器本身 return self def __next__(self): if self.index < len(self.string): # 返回下一个字符 char = self.string[self.index] self.index += 1 return char else: # 迭代结束时抛出StopIteration异常 raise StopIteration # 创建字符串对象 my_string = "Hello, World!" # 创建字符串迭代器对象 my_iterator = StringIterator(my_string) # 遍历字符串 for char in my_iterator: print(char)
示例3:遍历字典的键值对
class DictIterator: def __init__(self, dictionary): self.dictionary = dictionary self.keys = list(dictionary.keys()) self.index = 0 def __iter__(self): # 返回迭代器本身 return self def __next__(self): if self.index < len(self.keys): # 返回下一个键值对 key = self.keys[self.index] value = self.dictionary[key] self.index += 1 return key, value else: # 迭代结束时抛出StopIteration异常 raise StopIteration # 创建字典对象 my_dict = {"a": 1, "b": 2, "c": 3} # 创建字典迭代器对象 my_iterator = DictIterator(my_dict) # 遍历字典的键值对 for key, value in my_iterator: print(key, value)
通过以上示例,我们可以看到__iter__方法的作用是返回迭代器对象本身。这样,我们就可以使用迭代器对象来遍历集合中的元素。
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com