Maison >développement back-end >Tutoriel Python >Comment compresser des listes de longueurs inégales avec des valeurs répétitives en Python ?

Comment compresser des listes de longueurs inégales avec des valeurs répétitives en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-27 04:24:02650parcourir

How to Zip Lists of Unequal Lengths with Repeating Values in Python?

Comment compresser des listes de différentes tailles avec des valeurs répétitives

Lorsque vous traitez des listes de longueur inégale, la fonction zip() intégrée peut vous laisser de court. La question d'origine recherche une méthode pour compresser les listes A et B, même si B est plus courte, en répétant ses valeurs si nécessaire.

Bien que le code fourni utilisant une boucle puisse y parvenir, une solution plus concise est disponible en utilisant itertools .faire du vélo. Cette fonction renvoie un itérateur qui parcourt un itérable fourni, en le répétant indéfiniment.

Solution utilisant itertools.cycle :

from itertools import cycle

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

zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)

Dans ce cas, si A est plus long que B, la zip_list associera les valeurs de A aux valeurs répétées de B, garantissant que tous les éléments sont inclus. Si B est plus long que A, le processus est inversé.

La fonction itertools.cycle fournit un moyen pratique de réaliser cet appariement répété, ce qui en fait une solution efficace pour gérer des listes de différentes tailles en Python.

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