Comment entrelacer plusieurs listes d'équilongueurs en Python ?

Barbara Streisand
Libérer: 2024-11-14 18:51:02
original
749 Les gens l'ont consulté

How to Interleave Multiple Equilength Lists in Python?

Entrelacement de plusieurs listes d'équilongueurs en Python : une approche pythonique

En Python, la tâche d'entrelacer plusieurs listes de même longueur se pose fréquemment. Cette opération consiste à alterner les éléments des listes d'entrée pour produire une nouvelle liste.

Énoncé du problème :

Étant donné deux ou plusieurs listes de longueur égale, trouvez une méthode pythonique pour entrelacer leurs éléments dans une seule liste, en préservant l'ordre des éléments d'origine.

Solution :

En utilisant la puissante fonction zip() et la compréhension de liste, nous pouvons atteindre l'objectif l'entrelacement souhaité de manière concise et élégante.

Pour deux listes, l1 et l2, l'extrait de code suivant démontre le processus d'entrelacement :

[val for pair in zip(l1, l2) for val in pair]
Copier après la connexion

Ce code utilise la fonction zip() pour créer des paires d'éléments correspondants à partir de l1 et l2. Ensuite, il parcourt chaque paire et décompresse ses éléments (val) dans la compréhension de la liste.

Exemple :

l1 = [1, 2, 3]
l2 = [10, 20, 30]

interleaved_list = [val for pair in zip(l1, l2) for val in pair]

print(interleaved_list)  # [1, 10, 2, 20, 3, 30]
Copier après la connexion

Généralisation pour N listes :

La même technique peut être généralisée pour entrelacer un nombre arbitraire de listes :

lists = [l1, l2, ..., ln]
[val for tup in zip(*lists) for val in tup]
Copier après la connexion

Ce code utilise l'opérateur * pour décompresser les listes en arguments séparés pour zip(), créer des tuples d'éléments correspondants à partir de toutes les listes d'entrée. La compréhension de liste parcourt chaque tuple et extrait ses éléments pour construire la liste entrelacée.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal