Dire que j'ai un ensemble de données commeConversion d'un ensemble de données imbriqué à un ensemble de données à plat, tout en conservant suffisamment de données pour la reconvertir en emboîtés mis
(1, 2, (3, 4), (5, 6), (7, 8, (9, 0)))
Je veux le convertir en une représentation plate (semi) comme,
(
(1, 2),
(1, 2, 3, 4),
(1, 2, 5, 6),
(1, 2, 7, 8),
(1, 2, 7, 8, 9, 0),
)
Si vous utilisez cette option, (extrait de SO)
def flatten(iterable):
for i, item in enumerate(iterable):
if hasattr(item, '__iter__'):
for nested in flatten(item):
yield nested
else:
yield item
cela va convertir en une liste comme (après itérer)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Mais je ne peux pas obtenir l'original de cette reperenstation, alors que je peux récupérer l'original de la première. (Si chaque tuple dispose de 2 éléments seulement)
Comment convertir cette version semi-plate à l'original? – Triptych
Je pense qu'il serait plus logique de conserver votre ensemble de données hiérarchique et de créer un ensemble supplémentaire aplati. Il utilise probablement moins de mémoire que votre approche semi-aplatie, et certainement moins de temps de calcul. – txwikinger
Et quelle est la question? – hirschhornsalz