Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-10-29 00:17:02
original
944 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

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