Python 中可以使用迭代器来操作序列中的元素。迭代器是一个访问集合内元素的对象,不需要从序列的最开始元素开始遍历,也不需要事先确定序列的长度。迭代器工作时是惰性的,只有当需要获取值时,才会向序列请求数据。
迭代器链是指对多个迭代器进行串行连接,获得一个更为复杂的迭代器。下面是迭代器链的使用方法。
迭代器链的连接运算符
为了像连接列表一样连接两个迭代器,Python 提供了连接运算符 + 。下面是连接两个字符串的示例:
flavor_list = ['vanilla', 'chocolate', 'pecan', 'strawberry']
for flavor in flavor_list:
print(flavor)
s = 'abc'
t = [1, 2, 3]
for item in s + t:
print(item)
输出结果为:
vanilla
chocolate
pecan
strawberry
a
b
c
1
2
3
可以看到,连接后的迭代器 s + t 包含了原来的两个迭代器中所有的元素,可以被遍历输出。
使用 itertools.chain() 进行链式连接
除了运算符 + 以外,Python 还提供了 itertools.chain() 函数,用于将多个迭代器连接起来,形成一个更复杂的迭代器。下面是使用 itertools.chain() 函数的示例:
import itertools
flavor_list = ['vanilla', 'chocolate', 'pecan', 'strawberry']
for flavor in flavor_list:
print(flavor)
s = 'abc'
t = [1, 2, 3]
for item in itertools.chain(s, t):
print(item)
输出结果与前面的示例相同:
vanilla
chocolate
pecan
strawberry
a
b
c
1
2
3
可以看到,通过 itertools.chain() 函数,我们可以将多个元素类型不同的迭代器连接在一起,形成一个更为复杂的迭代器,然后进行遍历或其他操作。