Maison >développement back-end >Tutoriel Python >Comment puis-je entrelacer des listes en Python à l'aide de Zip et de la compréhension de liste ?

Comment puis-je entrelacer des listes en Python à l'aide de Zip et de la compréhension de liste ?

DDD
DDDoriginal
2024-11-15 21:06:03210parcourir

How can I Interleave Lists in Python using Zip and List Comprehension?

Utiliser la compréhension Zip et List pour l'entrelacement de listes

L'entrelacement de listes d'égale longueur en Python est une tâche courante. Étant donné deux listes [1,2,3] et [10,20,30], le but est de les transformer en [1,10,2,20,3,30].

Solution Utilisation de la compréhension Zip et liste :

Une approche concise pour entrelacer des listes consiste à utiliser la fonction zip et la compréhension de liste. Le code suivant accomplit la tâche :

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

Dans ce code :

  • zip(l1, l2) parcourt des paires d'éléments des deux listes d'entrée.
  • La compréhension de la liste externe ([val for pair in zip(l1, l2)]) crée une nouvelle liste pour chaque paire.
  • La compréhension de liste interne ([val pour val en paire]) crée une nouvelle liste pour chaque paire de valeurs.

Extension pour entrelacer plusieurs listes :

S'il y a plusieurs listes à entrelacer (N listes), le même concept peut être étendu en utilisant l'opérateur * à l'intérieur zip :

lists = [l1, l2, ...]
[val for tup in zip(*lists) for val in tup]

Dans ce code :

  • zip(*lists) parcourt les tuples d'éléments correspondants de toutes les listes d'entrée.
  • La compréhension de la liste externe ([val for tup in zip(*lists)]) crée une nouvelle liste pour chaque tuple.
  • La liste interne compréhension ([val for val in tup]) crée une nouvelle liste pour chaque tuple de valeurs.

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!

Déclaration:
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