Python的iter()函数返回给定对象的迭代器。
iter()函数创建一个可以一次迭代一个元素的对象。
当与for循环,while循环等循环耦合时,这些对象很有用。
iter()函数的语法为:
iter(object, sentinel)
iter()函数有两个参数:
iter()函数返回给定对象的迭代器对象。
如果用户定义的对象未实现__iter__(),__next__()或__getitem()__,则会引发TypeError异常。
如果还提供了sentinel参数,iter()将返回一个迭代器,直到没有找到标记字符为止。
# 元音列表 list of vowels vowels = ['a', 'e', 'i', 'o', 'u'] vowels_iter = iter(vowels) print(next(vowels_iter)) # 'a' print(next(vowels_iter)) # 'e' print(next(vowels_iter)) # 'i' print(next(vowels_iter)) # 'o' print(next(vowels_iter)) # 'u'
输出结果
a e i o u
class PrintNumber: def __init__(self, max): self.max = max def __iter__(self): self.num = 0 return self def __next__(self): if(self.num >= self.max): raise StopIteration self.num += 1 return self.num print_num = PrintNumber(3) print_num_iter = iter(print_num) print(next(print_num_iter)) # 1 print(next(print_num_iter)) # 2 print(next(print_num_iter)) # 3 # 引发StopIteration print(next(print_num_iter))
输出结果
1 2 3 StopIteration
with open('mydata.txt') as fp: for line in iter(fp.readline, ''): processLine(line)
运行该程序时,它将以读取模式打开mydata.txt文件。
然后,for循环中的iter(fp.readline,'')调用readline(读取文本文件中的每一行),直到到达标记字符''(空字符串)为止。