Compression de 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 ce problème, 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 :
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)
Dans cette solution, nous utilisons une instruction conditionnelle 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3