Vous avez mentionné que les solutions existantes pour aplatir les listes imbriquées échouent sur des structures telles que [[[1, 2, 3], [ 4, 5]], 6]. Cette requête explore la faisabilité d'approches alternatives, notamment en utilisant des itérateurs.
L'approche proposée :
La solution suggérée consiste à exploiter les fonctions du générateur pour simplifier le processus d'aplatissement et améliorer les performances. .
Python 2 Implémentation :
from collections import Iterable def flatten(xs): for x in xs: if isinstance(x, Iterable) and not isinstance(x, basestring): for item in flatten(x): yield item else: yield x
Implémentation de Python 3 :
from collections.abc import Iterable def flatten(xs): for x in xs: if isinstance(x, Iterable) and not isinstance(x, (str, bytes)): yield from flatten(x) else: yield x
Avantages des itérateurs :
Conclusion :
L'approche proposée utilisant Les itérateurs fournissent un moyen efficace et efficient d’aplatir des listes irrégulières de listes. Par rapport à d'autres méthodes, elle résout les cas de profondeurs d'imbrication arbitraires et évite les inconvénients des techniques d'aplatissement récursives ou manuelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!