asa*_*ica 7 python tuples generator
我如何转换成对的生成器(元组):
tuple_gen = (i for i in [(1, "a"), (2, "b"), (3, "c")])
Run Code Online (Sandbox Code Playgroud)
成两个发电机,会产生[1, 2, 3]和["a", "b", "c"]?
我需要单独处理元组的第一个和第二个元素,处理函数期望迭代.
生成器非常大(数百万项)所以我想避免在内存中同时存在所有项目,除非没有其他解决方案.
您可以n使用itertools 包中的tee函数创建不同的迭代器。然后您将分别迭代它们:
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)
Run Code Online (Sandbox Code Playgroud)