Comprimir listas de diferentes tamaños repitiendo la más corta
Al intentar comprimir dos listas con longitudes diferentes, la función de compresión incorporada falla corta al no repetir la lista más corta para que coincida con la más grande. Para superar esto, se necesitan enfoques alternativos.
Solución usando itertools.cycle
La función itertools.cycle proporciona la capacidad de iterar sobre un iterable sin fin. Esta función se puede aprovechar para repetir la lista más corta indefinidamente mientras se comprime con la lista más larga.
Implementación:
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)
En esta solución, utilizamos una declaración condicional para determinar qué lista debe repetirse. Si A es más largo que B, usamos itertools.cycle para repetir B, y si B es más largo que A, repetimos A.
La zip_list resultante contendrá tuplas que emparejan elementos de A y B, siendo B se repite según sea necesario para que coincida con la longitud de A. Este enfoque garantiza que todos los elementos de ambas listas estén emparejados, y que la lista más corta se repita según sea necesario.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3