Maison  >  Article  >  développement back-end  >  Comment compresser des listes de taille inégale en Python : exploration de « itertools.cycle » et des boucles personnalisées

Comment compresser des listes de taille inégale en Python : exploration de « itertools.cycle » et des boucles personnalisées

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 00:17:02820parcourir

How to Zip Unevenly Sized Lists in Python: Exploring `itertools.cycle` and Custom Loops

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!

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