Python iterator.__iter__ 用法详解及示例

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__方法的作用是返回迭代器对象本身。这样,我们就可以使用迭代器对象来遍历集合中的元素。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 内置函数参考指南