Ordenar una lista alfabéticamente en Python

Manav Narula 30 enero 2023
  1. Utilizar el método sort() para ordenar una lista alfabéticamente en Python
  2. Usa la función sorted() para ordenar una lista alfabéticamente en Python
  3. Usar el algoritmo de ordenación rápida para ordenar una lista alfabéticamente en Python
Ordenar una lista alfabéticamente en Python

En este tutorial, discutiremos cómo ordenar una lista que contiene cadenas alfabéticamente usando las funciones sort() y sorted() y usando el algoritmo de ordenación rápida.

Tanto sort() como sorted() pueden realizar la misma función, con la principal diferencia de que la función sort() ordena la lista original, mientras que la función sorted() crea una nueva lista.

Utilizar el método sort() para ordenar una lista alfabéticamente en Python

El método sort() del objeto list se utiliza para ordenar una lista. Por defecto, ordena la lista en orden ascendente. Por ejemplo:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
my_list.sort()
print(my_list)

Producción :

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']

Para ordenar la lista en orden inverso podemos utilizar el parámetro reverse y ponerlo a True. Por defecto es False. Por ejemplo:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
my_list.sort(reverse=True)
print(my_list)

Producción :

['Sam', 'Mark', 'Jay', 'Jack', 'Baron']

Observe que el orden de la lista ordenada se ha invertido. También podemos especificar la condición para ordenar usando el parámetro key. En el código siguiente, ordenaremos la lista en base a la longitud de la cadena de cada elemento en orden ascendente:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
my_list.sort(key=len)
print(my_list)

Producción :

['Sam', 'Jay', 'Mark', 'Jack', 'Baron']

Usa la función sorted() para ordenar una lista alfabéticamente en Python

La función sorted() también ordena una lista en el orden requerido, pero crea una nueva lista y no altera la lista original. Para ordenar alfabéticamente en orden ascendente, simplemente la pasamos a la función como se muestra a continuación.

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
sorted_list = sorted(my_list)
print(sorted_list)

Producción :

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']

De forma similar al método sort(), podemos ordenar en orden descendente utilizando el parámetro reverse. Por ejemplo:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
sorted_list = sorted(my_list, reverse=True)
print(sorted_list)

Producción :

['Sam', 'Mark', 'Jay', 'Jack', 'Baron']

También podemos utilizar el parámetro key para especificar la condición de ordenación como hicimos con la función sort(). Por ejemplo:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
sorted_list = sorted(my_list, reverse=True, key=len)
print(sorted_list)

Producción :

['Baron', 'Mark', 'Jack', 'Sam', 'Jay']

Usar el algoritmo de ordenación rápida para ordenar una lista alfabéticamente en Python

También podemos utilizar el algoritmo de ordenación rápida para ordenar una lista. Este método puede ser poco convencional, pero vale la pena señalar que otras técnicas de ordenación como la ordenación por fusión, la ordenación por selección, la ordenación por inserción, la ordenación por montón y la ordenación por burbuja también pueden lograr esto. El siguiente código muestra una función que implementa el método quicksort para ordenar una lista en Python.

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]


def quicksort(lst):
    if not lst:
        return []
    return (
        quicksort([x for x in lst[1:] if x < lst[0]])
        + [lst[0]]
        + quicksort([x for x in lst[1:] if x >= lst[0]])
    )


print(quicksort(my_list))

Producción :

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python List