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.

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?

Visitors in real time

You are alone: 🐱