我将如何转换成对的生成器(元组):
tuple_gen = (i for i in [(1, "a"), (2, "b"), (3, "c")])
分成两个生成
[1, 2, 3]
和["a", "b", "c"]
的生成器?我需要分别处理元组的第一和第二个元素,并且处理函数期望可迭代。
生成器非常大(数百万个项目),因此除非没有其他解决方案,否则我想避免将所有项目同时存储在内存中。
最佳答案
您可以使用itertools包中的tee函数创建n
不同的迭代器。然后,您将分别遍历它们:
from itertools impor tee
i1, i2 = tee(tuple_gen, n=2)
firsts = (x[0] for x in i1)
seconds = (x[1] for x in i2)
关于python - 将一对发电机变成一对发电机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47146905/