Maison  >  Article  >  développement back-end  >  Comment puis-je compresser des listes de longueurs inégales en répétant la plus courte ?

Comment puis-je compresser des listes de longueurs inégales en répétant la plus courte ?

DDD
DDDoriginal
2024-10-27 19:18:01268parcourir

How Can I Zip Unequal Length Lists by Repeating the Shorter One?

Compresser des listes de tailles différentes en répétant la plus courte

Lorsque vous essayez de compresser deux listes de longueurs inégales, la fonction zip intégrée tombe court en ne répétant pas la liste la plus courte pour correspondre à la plus grande. Pour surmonter cela, des approches alternatives sont nécessaires.

Solution utilisant itertools.cycle

La fonction itertools.cycle offre la possibilité de parcourir un itérable à l'infini. Cette fonctionnalité peut être exploitée pour répéter indéfiniment la liste la plus courte tout en la compressant avec la liste la plus longue.

Mise en œuvre :

<code class="python">import itertools

A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
B = ["A", "B", "C"]

zip_list = zip(A, itertools.cycle(B)) if len(A) > len(B) else zip(itertools.cycle(A), B)</code>

Dans cette solution, nous utilisons un conditionnel instruction pour déterminer quelle liste doit être répétée. Si A est plus long que B, nous utilisons itertools.cycle pour répéter B, et si B est plus long que A, nous répétons A.

La zip_list résultante contiendra des tuples associant des éléments de A et B, B étant répété si nécessaire pour correspondre à la longueur de A. Cette approche garantit que tous les éléments des deux listes sont appariés, la liste la plus courte étant répétée selon les besoins.

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