liste aplatie Python

L’aplatissement d’une liste fait référence au processus de suppression d’une dimension d’une liste. Une dimension fait référence à une coordonnée supplémentaire nécessaire pour localiser un élément dans une liste. Vous pouvez aplatir une liste Python à l’aide d’une compréhension de liste, d’une boucle for imbriquée ou de la méthode itertools.chain().

Une liste Python peut contenir plusieurs dimensions. Cela signifie que vous avez une liste dans les listes. Ces listes, parfois appelées "listes imbriquées", peut être reconverti en une liste normale.

Cela signifie que vous pouvez déplacer toutes les valeurs des listes d’une liste vers une seule liste. Transformer une liste de listes en liste s’appelle "aplatir une liste.‚"

Python Flatten List

Il existe trois façons d’aplatir une liste Python :

  • Utiliser une compréhension de liste.
  • Utiliser une boucle for imbriquée.
  • Utiliser la méthode itertools.chain().

Dans ce guide, nous expliquons comment aplatir une liste à l’aide d’une compréhension de liste, d’une boucle for et de la méthode itertools.chain(). Nous passons en revue deux exemples afin que vous puissiez commencer à aplatir des listes dans vos propres programmes.

Python : aplatir une liste à l’aide d’une compréhension de liste

Un Python list comprehension définit une liste basée sur le contenu d’une liste existante. Vous pouvez personnaliser chaque élément qui entre dans votre nouvelle liste en spécifiant des conditions ou des changements dans la compréhension.

Les compréhensions sont du sucre syntaxique pour utiliser une boucle for pour parcourir une liste et générer une nouvelle liste. Cela signifie qu’ils fonctionnent de la même manière fondamentale qu’une boucle for mais utilisent une syntaxe différente.

Voici la syntaxe pour une compréhension de liste :

81% des participants ont déclaré qu’ils se sentaient plus confiants sur leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Cette compréhension multiplie chaque nombre dans nos "chiffres" liste par 2.

Liste plate : exemple de compréhension de liste

Nous avons une liste de listes contenant différentes garnitures de sandwichs disponibles dans un restaurant. Actuellement, notre liste de listes ressemble à ceci :

Le premier la liste contient des garnitures de sandwich végétaliennes ; la deuxième liste contient des garnitures de sandwichs végétariens ; la troisième liste contient toutes les garnitures de sandwich contenant de la viande.

Nous voulons transformer cette liste en une seule liste d’aliments. Il est plus facile de travailler avec une liste à une dimension plutôt qu’à deux. Il n’est pas nécessaire d’avoir plus d’une dimension dans cette liste. Pour supprimer la deuxième dimension de notre liste, nous pouvons utiliser une compréhension de liste :

Cette liste de compréhension parcourt chaque liste dans les "aliments‚" Variable Python. Chaque valeur est ensuite ajoutée à une liste principale. Une fois notre liste générée, nous l’imprimons sur la console.

Laissons notre code et voyons ce qui se passe :

Notre liste de listes a été transformée avec succès en appartement liste. Tous les ingrédients apparaissent désormais dans une liste au lieu de trois.

Nous obtenons également ce même résultat en utilisant une Python for loop imbriquée. "boucle imbriquée pour" est une autre façon de dire "une boucle for dans une boucle for" Notre compréhension de liste est une autre façon de représenter la boucle for suivante :

Notre code utilise deux boucles for pour parcourir chaque élément de la liste dans chaque liste de la liste originale des listes. Exécutons notre code :

Notre programme renvoie le même résultat que notre liste de compréhension. Dans la plupart des cas, une compréhension de liste est une meilleure solution qu’une boucle for. Les listes de compréhension sont plus courtes et, dans ce cas, sont plus faciles à lire qu’une boucle for imbriquée.

Python : Flatten List Using Itertools

Itertools est un module de la bibliothèque standard Python. Le module fournit une gamme de méthodes, ce qui facilite le travail avec iterable objets et générateurs.

Pour nos besoins, nous nous référons uniquement à la méthode chain(). Cette méthode accepte une liste de listes et renvoie une liste aplatie.

Commencez par importer le module itertools dans notre code à l’aide d’une instruction d’importation Python :

Ensuite, définissez la liste des listes et utilisez la méthode chain() pour aplatir la liste :

Dans notre code, nous utilisons le symbole * pour décompresser notre liste. Cela convertit notre liste en arguments de fonction qui peuvent être analysés par la méthode chain().

La méthode chain() renvoie un objet itertools.chain. Pour voir notre liste aplatie, nous devons convertir cet objet en liste. Nous le faisons en utilisant la méthode list() :

Exécutons notre code :

Notre code a aplati notre liste.

"Career Karma est entré dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à participer à un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et à mes objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Bien qu’itertools soit un moyen efficace d’aplatir une liste, il est plus avancé que les deux dernières approches que nous ont discuté.

C’est parce que vous devez importer des itertools dans votre code qui introduit une nouvelle dépendance. De plus, la méthode chain() implique un déballage qui peut être difficile à comprendre.

Conclusion

Vous pouvez aplatir une liste Python en utilisant une compréhension de liste, une boucle for imbriquée et la méthode itertools.chain(). La compréhension de liste est la plus "Pythonique" méthode et est donc privilégiée dans la plupart des cas.

Bien que les boucles for imbriquées soient efficaces, elles consomment plus de lignes de code qu’une compréhension de liste. La méthode itertools.chain() est tout aussi efficace, mais elle peut être difficile à comprendre pour les débutants.

Il n’est généralement pas nécessaire d’importer une nouvelle bibliothèque (itertools) lorsque Python vous donne tous les outils dont vous avez besoin pour aplatir une liste.

Voulez-vous en savoir plus sur Python ? Consultez notre guide complet pour apprendre Python. Vous y trouverez des conseils d’apprentissage d’experts et une liste des meilleurs cours et livres à partir desquels vous pouvez apprendre .

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method