📜  可迭代是什么意思 (1)

📅  最后修改于: 2023-12-03 15:37:09.477000             🧑  作者: Mango

可迭代是什么意思

在编程中,可迭代是指一种数据类型,它可以被按照一定的顺序遍历,每次遍历返回一个元素。

内置的可迭代类型

Python中有些内置的数据类型就是可迭代的。比如:

  • 列表
  • 元组
  • 字符串
  • 集合
  • 字典的键
  • 文件对象(文件的每一行)

这些数据类型都可以通过for循环进行遍历。

my_list = [1, 2, 3, 4, 5]
for i in my_list:
    print(i)

# output:
# 1
# 2
# 3
# 4
# 5
自定义可迭代类型

除了内置的数据类型外,我们也可以创建自定义的可迭代类型。为了让一个对象成为可迭代的,我们需要实现__iter__方法。

__iter__方法需要返回一个迭代器对象,迭代器对象是拥有__next__方法的对象。在每次进行迭代时,调用__next__方法返回下一个元素。

下面是一个自定义可迭代类型的例子:

class MyRange:
    def __init__(self, start, end):
        self.start = start
        self.end = end
    
    def __iter__(self):
        self.current = self.start
        return self
    
    def __next__(self):
        if self.current >= self.end:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1

my_range = MyRange(1, 4)
for i in my_range:
    print(i)

# output:
# 1
# 2
# 3

在这个例子中,我们定义了一个MyRange类,用于生成从startend的整数序列。

我们实现了__iter__方法,它返回了一个迭代器对象self。我们也定义了__next__方法,用于在每次迭代时返回下一个元素。如果已经到达序列末尾,我们会抛出StopIteration异常。