скажем, у меня есть набор данных, как
(1, 2, (3, 4), (5, 6), (7, 8, (9, 0)))
Я хочу преобразовать его в (полу) плоское представление типа,
(
(1, 2),
(1, 2, 3, 4),
(1, 2, 5, 6),
(1, 2, 7, 8),
(1, 2, 7, 8, 9, 0),
)
Если вы используете это, (взято из SO)
def flatten(iterable):
for i, item in enumerate(iterable):
if hasattr(item, '__iter__'):
for nested in flatten(item):
yield nested
else:
yield item
это преобразует его в список вроде (после итерации)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Но я не могу получить оригинал от этой реперстанции, в то время как я могу получить оригинал от первого. (Если в каждом кортеже есть только 2 элемента)