Métodos de ordenação de listas em Python: guia completo
Ordenar dados é uma tarefa essencial em praticamente qualquer aplicação. Desde o processamento de entrada do usuário até algoritmos complexos de análise de dados. Em Python, trabalhar com listas é intuitivamente simples. As ferramentas de ordenação oferecem flexibilidade e recursos poderosos.
Fundamentos do trabalho com listas em Python
Listas em Python são coleções ordenadas e mutáveis de objetos. Elas permitem armazenar elementos de diferentes tipos de dados e fornecem acesso conveniente a eles por índice.
numeros = [5, 2, 9, 1, 5, 6]
palavras = ["banana", "maca", "cereja"]
lista_mista = [1, "ola", 3.14, True]
Principais métodos de ordenação de listas
Python oferece duas formas principais de ordenar listas: o método sort() e a função sorted(). Cada um tem suas características e casos de uso específicos.
Método sort() — ordenação in-place
O método sort() modifica a lista original e retorna None. Essa abordagem é eficiente em termos de memória, pois não cria uma nova lista.
numeros = [5, 2, 9, 1]
numeros.sort()
print(numeros) # [1, 2, 5, 9]
Parâmetros do método sort()
O método sort() aceita os seguintes parâmetros:
reverse: define a direção da ordenação (True para decrescente, False para crescente)key: função que determina o critério de ordenação
numeros = [5, 2, 9, 1]
numeros.sort(reverse=True)
print(numeros) # [9, 5, 2, 1]
Função sorted() — criando uma nova lista
A função sorted() retorna uma nova lista ordenada, sem modificar a original. Isso é útil quando você precisa preservar a ordem original dos elementos.
numeros = [5, 2, 9, 1]
novos_numeros = sorted(numeros)
print(novos_numeros) # [1, 2, 5, 9]
print(numeros) # [5, 2, 9, 1] — lista original não foi alterada
Ordenação decrescente com sorted()
numeros = [5, 2, 9, 1]
sorted_desc = sorted(numeros, reverse=True)
print(sorted_desc) # [9, 5, 2, 1]
Comparação dos métodos de ordenação
| Método | Modifica a lista | Retorna valor | Uso recomendado |
|---|---|---|---|
| sort() | Sim | Não (None) | Quando a ordem original não é necessária |
| sorted() | Não | Nova lista | Quando é preciso preservar os dados originais |
Ordenação de strings em listas
Ordenação alfabética
Ao ordenar strings, o Python usa a ordem lexicográfica por padrão:
palavras = ["banana", "maca", "cereja"]
palavras.sort()
print(palavras) # ['banana', 'cereja', 'maca']
Ordenação decrescente
palavras = ["banana", "maca", "cereja"]
palavras.sort(reverse=True)
print(palavras) # ['maca', 'cereja', 'banana']
Trabalhando com maiúsculas e minúsculas na ordenação de strings
Sensibilidade a maiúsculas/minúsculas
Por padrão, a ordenação leva em conta o caso dos caracteres. Letras maiúsculas vêm antes das minúsculas na tabela ASCII:
palavras = ["Banana", "maca", "Cereja"]
print(sorted(palavras)) # ['Banana', 'Cereja', 'maca']
Ignorando maiúsculas/minúsculas
Para ordenar sem diferenciar maiúsculas de minúsculas, use o parâmetro key=str.lower:
palavras = ["Banana", "maca", "Cereja"]
print(sorted(palavras, key=str.lower)) # ['Banana', 'Cereja', 'maca']