Digamos que tenemos una lista:Ordenar una parte de una lista en su lugar
a = [4, 8, 1, 7, 3, 0, 5, 2, 6, 9]
Ahora, a.sort() ordenará la lista en su lugar. ¿Qué pasa si queremos ordenar solo una parte de la lista, todavía en su lugar? En C++ podríamos escribir:
int array = { 4, 8, 1, 7, 3, 0, 5, 2, 6, 9 };
int * ptr = array;
std::sort(ptr + 1, ptr + 4);
¿Hay una manera similar en Python?
¿Por qué la necesidad de ordenar solo en el lugar? –
Creo que sería una buena idea solicitar ser agregado a Python. Simplemente serían argumentos opcionales de inicio y finalización del método estándar sort(). –
Una buena razón para el ordenamiento in situ es un caso en el que desea ordenar el final de la lista (que ya está ordenada en su mayoría, tal vez por una función clave menos costosa), y luego mostrar el último valor. Se topó con este caso de uso al construir una solución TSP codiciosa. Es probable que vaya con la solución de @fviktor. – Jostikas