#5 Ordenar una lista con Python

hace 3 años · Actualizado hace 1 año

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

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:

Entrar al curso completo de Python desde cero a experto

Índice
  1. Ordenar una lista con Python
    1. La diferencia entre sort() y sorted()
    2. Parámetros de sort() y sorted()
  2. Algoritmos de ordenación
    1. Ordenamiento por Selección

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:

algoritmo de ordenacion por seleccion

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)

También te puede interesar:

Pionera del caos

Otras Entradas Relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *



Para continuar es necesario que confirmes la política de privacidad de la web.

Subir