当前位置:   article > 正文

迭代器(Iterator)_迭代器iterator遍历

迭代器iterator遍历

Python中的迭代器(Iterator)是一个可以遍历数据集合的对象,它定义了一个__next__()方法,用于返回集合中的下一个元素。当所有元素都被遍历完后,会触发StopIteration异常。以下是迭代器的使用方法:

  1. 创建迭代器
    可以使用iter()函数来创建一个迭代器对象,iter()函数接受一个可迭代对象作为参数,返回一个迭代器对象。例如,可以使用迭代器来遍历列表:
my_list = [1, 2, 3]
my_iterator = iter(my_list)
print(next(my_iterator)) # 输出1
print(next(my_iterator)) # 输出2
print(next(my_iterator)) # 输出3
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 迭代器的遍历
    可以使用for循环来遍历迭代器中的元素,当所有元素都被遍历完后,会自动触发StopIteration异常,结束迭代。例如,可以使用迭代器来遍历字符串:
my_str = "Hello, World!"
my_iterator = iter(my_str)
for char in my_iterator:
    print(char)
  • 1
  • 2
  • 3
  • 4

输出结果为:

H
e
l
l
o
,
 
W
o
r
l
d
!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  1. 自定义迭代器
    可以在类中定义自己的迭代器,只需要在类中定义__iter__()和__next__()方法即可。例如,可以定义一个自己的迭代器来遍历一个列表中的偶数:
class EvenIterator:
    def __init__(self, my_list):
        self.my_list = my_list
        self.index = 0
    def __iter__(self):
        return self
    def __next__(self):
        while self.index < len(self.my_list):
            if self.my_list[self.index] % 2 == 0:
                value = self.my_list[self.index]
                self.index += 1
                return value
            else:
                self.index += 1
        raise StopIteration
my_list = [1, 2, 3, 4, 5, 6]
my_iterator = EvenIterator(my_list)
for num in my_iterator:
    print(num)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

输出结果为:

2
4
6
  • 1
  • 2
  • 3

在这个例子中,定义了一个EvenIterator类,它包含了__iter__()和__next__()方法。iter()方法返回迭代器自身,next()方法返回列表中的下一个偶数,如果列表中已经没有偶数,就触发StopIteration异常。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号