Como ordenar listas em Python: guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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']

Ordenação de estruturas de dados complexas

Ordenação de lista de dicionários

Blogs

Book Recommendations