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 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!