Lorsque vous travaillez avec des listes de longueurs variables, les compresser ensemble peut poser un défi. La fonction zip() par défaut en Python associe les éléments de la liste la plus courte à ceux de la liste la plus longue, laissant les éléments restants de la liste la plus longue non appariés. Pour remédier à cette limitation, nous pouvons exploiter la puissance de la répétition itérative.
Un moyen efficace de répéter la liste la plus courte consiste à utiliser la fonction itertools.cycle. Cette fonction crée un itérateur qui parcourt sans fin les éléments d'un itérable, même après épuisement. En incorporant le cycle dans notre opération de compression, nous pouvons garantir que la liste la plus courte se répète jusqu'à ce que la liste la plus longue soit entièrement couverte.
Utiliser itertools.cycle pour compresser des listes de tailles différentes est simple . L'extrait de code suivant démontre son implémentation :
<code class="python">import itertools A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] from itertools import cycle zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B) for item in zip_list: print(item)</code>
L'exécution du code fourni produit le résultat suivant :
(1, 'A') (2, 'B') (3, 'C') (4, 'A') (5, 'B') (6, 'C') (7, 'A') (8, 'B') (9, 'C')
Comme nous pouvons l'observer, le plus court la liste B se répète jusqu'à ce que tous les éléments de la liste A plus longue soient appariés. Cette répétition transparente garantit qu'aucun élément n'est laissé sans paire, ce qui nous permet d'effectuer des opérations sur des listes entières sans aucune perte de données.
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!