#5 Ordenar una lista con Python
hace 3 años · Actualizado hace 1 año
Uno de los problemas más sencillos y habituales que nos encontramos a la hora de programar en Python es ordenar listas. Para ordenar una lista en Python existen muchos algoritmos diferentes, cada uno con sus complejidades.
En este tutorial te voy a enseñar a ordenar listas en Python utilizando tanto funciones predefinidas en Python como enseñándote los algoritmos de ordenación más populares.
Por otro lado, te pueden interesar mis artículos relacionados con el manejo de variables en Python:
- Buscar en una lista python
- Concatenar variables python
- CURSO PYTHON GRATIS - Todas las entradas relacionadas con Python ordenadas para que aprendas cada cosa a su tiempo
Entrar al curso completo de Python desde cero a experto
Ordenar una lista con Python
Para ordenar listas en Python tenemos dos opciones básicas: sort() y sorted(). Ambas son muy parecidas y tienen parámetros similares.
La diferencia entre sort() y sorted()
La diferencia entre estas dos funciones se basa en como devuelven los resultados, ya que mientras lista.sort() ordena el elemento lista, lista.sorted() no altera la lista, pero devuelve una copia de la lista ordenada. Además, la función sorted() sirve para ordenar cualquier objeto iterable, no solo las listas.
Parámetros de sort() y sorted()
Tanto sort() como sorted() tienen parámetros en común y te los cuento a continuación:
- reverse. Este parámetro por defecto está en Falso, y si lo ponemos en True el orden de la lista será inverso.
- key. Este parámetro se utiliza cuando la lista está formada por elementos compuestos (por ejemplo, una lista de listas). Sirve para especificar qué elemento queremos utilizar como criterio para ordenar. Por ejemplo, key=lambda x : x[1] es una función lambda que dada una lista, devuelve el segundo elemento de la misma. Por tanto, en este ejemplo se utilizará el segundo elemento de cada lista dentro de la lista que queremos ordenar como parámetro de ordenación.
Algoritmos de ordenación
Lo cierto es que existen muchos algoritmos de ordenación, así que te voy a mencionar y explicar los más populares.
Ordenamiento por Selección
El algoritmo de ordenamiento por selección se basa en el uso de dos índices que recorren la lista N veces (siendo N la longitud de la lista) buscando el valor mínimo para ponerlo en la posición correspondiente.
Concretamente, el comportamiento es el siguiente:
Y el pseudocódigo para entenderlo sería:
para i=0 hasta n-1 para j=i+1 hasta n si lista[j] < lista[i] entonces intercambiar(lista[i], lista[j]) fin si fin para fin para
Que traducido a código, tendríamos algo tal que así:
l = [4, 3, 1, 5, 2] def intercambiar(l, p1, p2): aux = l[p1] l[p1] = l[p2] l[p2] = aux for i in range (0, len(l)-1): for j in range (i+1, len(l)): if l[j] < l[i]: intercambiar(l,i,j)
Deja una respuesta
Otras Entradas Relacionadas