Énoncé du problème :
Vous recevez une liste imbriquée et devez l'aplatir dans une seule liste. Par exemple, vous avez une liste de listes comme :
[[1, 2, 3], [4, 5, 6], [7], [8, 9]]
Le but est d'aplatir cette structure en une seule liste :
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Solution :
Pour aplatir une liste de listes, vous pouvez utiliser une compréhension de liste imbriquée. Cette technique consiste à parcourir chaque liste interne (représentée par xs dans le code) et à ajouter chaque élément individuel (représenté par x) à une liste aplatie (nommée flat_list) :
flat_list = [ x for xs in xss for x in xs ]
Cela équivaut à ce qui suit itération explicite à l'aide de boucles imbriquées :
flat_list = [] for xs in xss: for x in xs: flat_list.append(x)
Vous pouvez également créer une fonction pour effectuer cet aplatissement opération :
def flatten(xss): return [x for xs in xss for x in xs]
En utilisant cette fonction, vous pouvez aplatir la liste d'entrée comme suit :
flat_list = flatten([[1, 2, 3], [4, 5, 6], [7], [8, 9]])
Cette approche est très efficace et fonctionne nettement mieux que d'autres méthodes telles que l'utilisation ou la réduction . La technique de compréhension de liste garantit que chaque élément n'est copié qu'une seule fois dans la liste aplatie.
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!