20. Orden adulterado
Crea una función que, dada una lista de números y otra lista de sus índices "adulterados" (es decir, el orden en que deberían aparecer los elementos), reconstruya la lista original.
La función debe aceptar dos listas: valores y indices. Los valores son los elementos de la lista desordenada, y indices es una lista de la misma longitud que indica la posición original de cada elemento de valores. Debe devolver la lista reconstruida.
def reconstruir_orden(valores: list, indices: list[int]) -> list:
# Tu código aquí
pass
reconstruir_orden(["a", "b", "c", "d"], [3, 1, 0, 2])
# ["c", "b", "d", "a"]
reconstruir_orden([10, 20, 30], [2, 0, 1])
# [20, 30, 10]
reconstruir_orden(["manzana", "pera", "uva"], [0, 2, 1])
# ["manzana", "uva", "pera"]
Ratoncito
Implementa la reconstrucción de la lista asumiendo que los indices son válidos y únicos dentro del rango de la lista.
Dragón
Añade validación: si la longitud de valores e indices no coincide, si los indices contienen valores fuera de rango o duplicados, la función debe manejarlo (por ejemplo, lanzando un error o devolviendo un valor específico). Considera también el caso de listas vacías.
Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.
Apóyame en Ko-fi