У меня есть функция, которая сопоставляет элементы итерируемого объекта другому итерируемому. Затем я хочу получить отдельные элементы из плоской версии этого объекта. Следующий код моделирует то, что я хочу:
a = [1, 2 ,3 , 4]
b = map(lambda x:(x, x), a)
c = itertools.chain(*b)
# next(c) returns `1`, `1`, `2`, etc
Однако, если a
очень велик или значения, созданные моим map
, большие, я не хочу пытаться удерживать весь список в памяти. Есть ли способ сделать это "на лету", чтобы не хранить / предварительно вычислять столько же.