Aplatir la liste de la liste dans Python

Aplatir la liste de la liste dans Python
Dans cet article, nous verrons comment nous pouvons aplatir la liste de la liste de différentes manières. Avant de continuer, nous devons connaître la différence entre l'aplatissement peu profond et l'aplatissement profond.

Aplatissement peu profond: cela signifie aplatir la liste à un seul niveau de profondeur uniquement.

Aplatissement profond: cela signifie aplatir la liste à n'importe quel niveau de profondeur.

Les sujets dont nous allons discuter dans cet article sont comme ci-dessous:

  • Méthode 1: Utilisation pour la boucle
  • Méthode 2: Utilisation d'une compréhension de la liste
  • Méthode 3: Utilisation de la méthode Flatten ()
  • Méthode 4: Utilisation de la méthode Deepflatten ()
  • Méthode 5: Utilisation d'aplatir des pandas
  • Méthode 6: Utilisation d'aplatissement matplotlib
  • Méthode 7: Utilisation de l'aplatissement Unipath Méthode
  • Méthode 8: Utilisation de la méthode d'aplatissement setuptools
  • Méthode 9: Utilisation de Itertools.méthode de chaîne
  • Méthode 10: Utilisation de Numpy Ravel Méthode
  • Méthode 11: Utilisation de la méthode de remodelage Numpy
  • Méthode 12: Utilisation de la méthode d'aplatissement Numpy
  • Méthode 13: Utilisation de Numpy.Méthode de concaténer
  • Méthode 14: Utilisation de la méthode de Numpy Flat

Méthode 1: Utilisation pour la boucle

Dans cette méthode, nous utiliserons For-Bop, ce qui est très courant dans chaque langage de programmation. Nous itérons chaque élément de la liste, puis itérons cet élément plus loin, comme indiqué dans le programme ci-dessous.

LST = [[30,7], [8,9], [30,7], [8,9]]
Flatten_list = []
pour je en lst:
pour l'article dans i:
aplatir.Ajouter (article)
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", Flatten_List)

Sortir:

Liste avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9]

Ligne 1: Nous avons créé une liste de listes.

Ligne 3 à 5: Dans cette ligne, nous exécutons une boucle imbriquée. La boucle extérieure est pour la liste principale, et la boucle intérieure pour les éléments. Si vous voyez cette boucle imbriquée, vous découvrirez que chaque élément de la liste des sous-éléments a été extrait et ajoutant à la nouvelle liste (Flatten_List). De cette façon, chaque élément de la sous-liste est maintenant séparé.

Ligne 6 à 7: Ces lignes affichant la liste originale avant et après l'aplatissement de la liste.

Méthode 2: Utilisation de la compréhension de la liste

La compréhension de la liste est une méthode avancée de ce qui précède pour la boucle où nous écrivons tout en une seule ligne.

LST = [[30,7], [8,9], [30,7], [8,9]]
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste après aplatissement", [Article pour I en LST pour l'article dans i])

Sortir:

Liste avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9]]
Liste après aplatissement [30, 7, 8, 9, 30, 7, 8, 9]

Ligne 1: Nous avons créé une liste de la liste.
Ligne 3: Cette ligne exécutant deux boucles en une seule ligne pour aplatir la liste.

Méthode 3: Utilisation de la méthode Flatten ()

Une autre méthode consiste à utiliser la bibliothèque aplatie () comme indiqué dans le programme ci-dessous. Mais la méthode d'aplatissement ne fonctionnera qu'à un seul niveau de la liste imbriquée; S'il y a des listes profondément imbriquées, alors elle n'aplatira pas la liste. Les deux exemples de programme imbriqués à imbrication et profondément imbriqués sont donnés ci-dessous.

De itération_utilées Importer aplaties
LST = [[30,7], [8,9], [30,7], [8,9]]
Imprimer (liste (aplati (LST)))

Sortir:

[30, 7, 8, 9, 30, 7, 8, 9]

Ligne 3: Nous appelons l'aplatissement de la méthode et passons la liste dans celle-ci comme argument. La sortie ci-dessus montre que notre liste de listes est désormais aplatie.

Maintenant, nous allons voir une liste profondément imbriquée pour la méthode d'aplatissement.

De itération_utilées Importer aplaties
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
Imprimer (liste (aplati (LST)))

Sortir:

[30, 7, 8, 9, 30, 7, 8, 9, [2]]

Ligne 2: Nous avons créé une liste imbriquée et ajouté un autre élément [[2]] qui est profondément imbriqué.

Ligne 3: Nous appelons l'aplatissement de la méthode et passons la liste dans celle-ci comme argument. La sortie ci-dessus montre qu'il n'est pas fait pour aplatir entièrement la liste profondément imbriquée parce que l'élément [2] est toujours dans une liste.

Méthode 4: Utilisation de la méthode Deepflatten ()

L'autre méthode est la deepflatten () qui peut aplatir la liste profondément imbriquée, qui n'est pas effectuée par la méthode d'aplatissement comme nous l'avons vu dans l'exemple ci-dessus.

de itération_utilities importer deepflatten
LST = [[30,7], [8,9], [30,7], [8,9], [[200]]]
Imprimer ("Liste lst avant d'aplatir", LST)
aplate_lst = list (Deepflatten (LST))
Imprimer ("Liste LST après aplatissement", aplaten_lst)

Sortir:

Liste LST avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9], [[200]]]
Liste de l'aplatissement [30, 7, 8, 9, 30, 7, 8, 9, 200]

Ligne 1: Nous importons la méthode Deepflatten.

Ligne 4: Nous appelons la méthode Deepflatten et passons la liste profondément imbriquée dans celle comme un argument. La sortie ci-dessus montre que notre liste profondément imbriquée est maintenant aplatie.

Méthode 5: Utilisation de la méthode Pandas Flatten ()

Cette méthode fait la liste d'aplatissement même si la liste est profondément imbriquée.

des pandas.cœur.aplatissement d'importation commun
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST)))

Sortir:

Liste avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9, 2]

Ligne 4: Nous appelons l'aplatissement de la méthode et passons la liste profondément imbriquée dans ce point comme un argument. La sortie ci-dessus montre que notre liste profondément imbriquée est maintenant aplatie.

Méthode 6: Utilisation de la méthode Matplotlib Flatten ()

Cette méthode fait la liste d'aplatissement même si la liste est profondément imbriquée.

de Matplotlib.CBOOK IMPORT APLAPER
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST)))

Sortir:

Liste avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9, 2]

Ligne 4: Nous appelons l'aplatissement de la méthode et passons la liste profondément imbriquée dans cela comme argument. La sortie ci-dessus montre que notre liste profondément imbriquée est maintenant aplatie.

Méthode 7: Utilisation de la méthode Unipath Flatten ()

Cette méthode fait la liste d'aplatissement même si la liste est profondément imbriquée.

Importer Unipath
De Unipath.aplatissement d'importation du chemin
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST)))

Sortir:

Liste avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9, 2]

Ligne 5: Nous appelons l'aplatissement de la méthode et passons la liste profondément imbriquée dans ce point comme un argument. La sortie ci-dessus montre que notre liste profondément imbriquée est maintenant aplatie.

Méthode 8: Utilisation de la méthode SetUptoLs Flatten ()

Cette méthode fait la liste d'aplatissement à un seul niveau.

de setuptools.Les espaces de noms importent aplatir
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST)))

Sortir:

Liste avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9, [2]]

Ligne 2: Nous avons créé une liste imbriquée et ajouté un autre élément [[2]] qui est profondément imbriqué.

Ligne 4: Nous appelons l'aplatissement de la méthode et passons la liste dans celle-ci comme argument. La sortie ci-dessus montre qu'il n'est pas fait pour aplatir entièrement la liste profondément imbriquée parce que l'élément [2] est toujours dans une liste.

Méthode 9: Utilisation des itertools.méthode de chaîne

Pour déballer la liste des listes, nous pouvons également utiliser les itertools.méthode de chaîne. Cette méthode a en outre deux façons d'aplatir la liste des listes. Les deux méthodes sont données ci-dessous. Ces méthodes ont également fait la liste de la liste à un seul niveau.

Utilisation des itertools.chaîne.de_iterable

Importer Itertools
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
Imprimer ("Liste lst avant d'aplatir", LST)
platepten_lst = list ((itertools.chaîne.From_iterable (LST)))
Imprimer ("Liste LST après aplatissement", aplaten_lst)

Sortir:

Liste LST avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Liste LST après aplatissement [30, 7, 8, 9, 30, 7, 8, 9, [2]]

Ligne 2: Nous avons créé une liste imbriquée et ajouté un autre élément [[2]] qui est profondément imbriqué.

Ligne 4: Nous appelons la méthode Itertools.chaîne.from_iterable () et passez la liste dans cela comme argument. La sortie ci-dessus montre qu'il n'est pas fait pour aplatir complètement la liste profondément imbriquée car l'élément [2] est toujours à l'intérieur d'une liste.

Utilisation de l'opérateur *

Importer Itertools
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
Imprimer ("Liste lst avant d'aplatir", LST)
platepten_lst = list ((itertools.chaîne (* lst)))
Imprimer ("Liste LST après aplatissement", aplaten_lst)

Sortir:

Liste LST avant d'aplatir [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Liste LST après aplatissement [30, 7, 8, 9, 30, 7, 8, 9, [2]]

Méthode 10: Utilisation de Numpy.Méthode Ravel ()

L'autre méthode est numpy.Ravel qui aplatit également la liste imbriquée. Mais cette méthode s'aplatit à un niveau de nichage.

Importer Numpy comme NP
lst = np.Array ([[30,7], [8,9], [30,7], [8,9]])
aplate_lst = lst.effilochage()
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST)))

Sortir:

Liste avant d'aplatir [[30 7]
[8 9]
[30 7]
[8 9]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9]

Ligne 3: Nous appelons la méthode Numpy Ravel. La sortie ci-dessus montre que notre tableau de liste imbriqué est désormais aplati.

Méthode 11: Utilisation de la méthode Rumpy Reshape ()

L'autre méthode est Numpy Reshape, qui aplatit également la liste imbriquée. Mais cette méthode s'aplatit à un niveau de nichage.

Importer Numpy comme NP
lst = np.Array ([[30,7], [8,9], [30,7], [8,9]])
aplate_lst = lst.Reshape (-1)
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST))) avant d'aplatir [[30 7]
[8 9]
[30 7]
[8 9]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9]

Ligne 3: Nous appelons la méthode Reshape (-1). La sortie ci-dessus montre que notre tableau de liste imbriqué est désormais aplati.

Méthode 12: Utilisation de la méthode Numpy Flateten ()

L'autre méthode est Numpy Flatten (), qui aplatit également la liste imbriquée. Mais cette méthode s'aplatit à un niveau de nichage.

Importer Numpy comme NP
lst = np.Array ([[30,7], [8,9], [30,7], [8,9]])
aplate_lst = lst.aplatir()
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST)))


Sortir:

Liste avant d'aplatir [[30 7]
[8 9]
[30 7]
[8 9]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9]

Ligne 5: Nous appelons l'aplatissement de la méthode. La sortie ci-dessus montre que notre tableau de liste imbriqué est désormais aplati.

Méthode 13: Utilisation de Numpy.Méthode concatenate ()

L'autre méthode est numpy.concatenate (), qui aplatit également la liste imbriquée. Mais cette méthode s'aplatit à un niveau de nichage.

Importer Numpy comme NP
lst = np.Array ([[30,7], [8,9], [30,7], [8,9]])
aplate_lst = list (np.concatenate (LST))
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST)))

Sortir:

Liste avant d'aplatir [[30 7]
[8 9]
[30 7]
[8 9]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9]

Ligne 3: Nous appelons la méthode Numpy.concatenate () et passer le tableau de liste imbriqué dans cela comme un argument. La sortie ci-dessus montre que notre tableau de liste imbriqué est désormais aplati.

Méthode 14: Utilisation de la méthode à plat Numpy

L'autre méthode est la plats numpy qui aplatit également la liste imbriquée. Mais cette méthode s'aplatit à un niveau de nichage.

Importer Numpy comme NP
lst = np.Array ([[30,7], [8,9], [30,7], [8,9]])
aplate_lst = list (LST.plat)
Imprimer ("Liste avant d'aplatir", LST)
Imprimer ("Liste aplatie:", liste (aplaten (LST)))

Sortir:

Liste avant d'aplatir [[30 7]
[8 9]
[30 7]
[8 9]]
Liste aplatie: [30, 7, 8, 9, 30, 7, 8, 9]

Ligne 3: Nous appelons la méthode plate, et la sortie ci-dessus montre que notre tableau de liste imbriqué est maintenant aplati.

Conclusion:

Dans ce blog, nous vous avons montré différentes méthodes que nous pouvons utiliser pour aplatir notre liste de listes. Toutes les méthodes ci-dessus fonctionnent parfaitement pour le seul niveau de la liste imbriquée. Mais s'il existe des listes profondément imbriquées, certaines des méthodes ci-dessus fonctionnent parfaitement. Donc, c'est à vous et, selon les exigences de votre programme, quelle méthode vous souhaitez utiliser.

Le code de cet article est également disponible sur le lien GitHub:
https: // github.com / shekharpandey89 / aplatir la liste de la liste