Zipper des listes de taille inégale : explorer des approches alternatives
Le comportement inhérent de la fonction zip intégrée de Python pose un défi lorsqu'il s'agit de listes de longueurs variables. Cela est évident lorsqu'une liste est plus courte que l'autre, ce qui entraîne un nombre inégal d'éléments à appairer.
Pour remédier à cette limitation, il existe plusieurs techniques pour obtenir le résultat souhaité, où la liste la plus courte est répétée pour correspondre à la longueur du plus long.
1. Utilisation de la fonction zip avec itertools.cycle
Cette méthode implique d'utiliser la fonction itertools.cycle de Python pour créer un itérable qui parcourt sans fin les éléments de la liste la plus courte. En tirant parti du cycle, il devient possible d'associer les éléments de la liste la plus longue avec les éléments répétés de la liste la plus courte.
<code class="python">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)</code>
2. Implémentation d'une boucle For personnalisée
Une approche alternative consiste à parcourir manuellement la liste plus grande et à associer chaque élément avec l'élément correspondant de la liste la plus courte. Si la liste la plus courte est épuisée, l'itération recommence depuis le début, en répétant les éléments jusqu'à ce que tous les éléments de la liste plus grande soient appariés.
<code class="python">idx = 0 zip_list = [] for value in larger: zip_list.append((value,smaller[idx])) idx += 1 if idx == len(smaller): idx = 0</code>
En employant l'une ou l'autre de ces stratégies, les développeurs peuvent efficacement compresser deux listes. de tailles différentes, en veillant à ce que la liste la plus courte soit répétée autant que nécessaire pour correspondre à la longueur de la liste la plus longue. Cela ouvre des possibilités pour diverses tâches de traitement et de manipulation de données qui impliquent de travailler avec des listes de longueurs inégales.
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!