Como classificar uma lista em Python (crescente e decrescente)
Aprenda como classificar uma lista em Python usando o método sort() e a função sorted(). Descubra exemplos de classificação de chaves personalizadas e ordem reversa.
Visão geral
Classificar dados é uma das tarefas mais comuns na programação, seja ordenando perfis de usuários por idade, listando produtos por preço ou organizando resultados de pesquisa. Python oferece duas maneiras integradas e altamente otimizadas de classificar listas: o método `list.sort()` e a função `sorted()`. Ambos usam um algoritmo de classificação altamente eficiente chamado Timsort, que é executado em complexidade de tempo O(N log N).
A principal diferença entre os dois é a mutabilidade. O método `list.sort()` classifica a lista no local, o que significa que modifica diretamente a lista original e retorna `None`. A função `sorted()`, por outro lado, deixa a lista original inalterada e retorna uma lista ordenada totalmente nova. Esta distinção é crucial: use `sort()` quando quiser economizar memória e não precisar da ordem original, e use `sorted()` quando precisar manter a lista original intacta ou ao classificar iteráveis que não são da lista, como tuplas ou dicionários.
Ambos os métodos de classificação aceitam dois argumentos de palavras-chave opcionais: `reverse` e `key`. O argumento `reverse` é um valor booleano; defini-lo como `True` classifica a lista em ordem decrescente (reversa). O argumento `key` aceita uma função que é aplicada a cada elemento antes da comparação. Isso permite uma lógica de classificação complexa, como classificar uma lista de strings por comprimento ou classificar uma lista de dicionários por uma chave específica.
Saída de código e execução
Este código demonstra a classificação de uma lista de números usando sort() e sorted(), classificação inversa e classificação de chave personalizada por comprimento de string.
numbers = [42, 7, 12, 89, 23]
# 1. Using sorted() (returns new list)
new_sorted = sorted(numbers)
print("Original:", numbers)
print("Sorted new list:", new_sorted)
# 2. Using sort() (in-place modification)
numbers.sort()
print("Modified original list:", numbers)
# 3. Sorting in reverse (descending)
numbers.sort(reverse=True)
print("Reverse sorted list:", numbers)
# 4. Custom sorting (by string length)
words = ["banana", "pear", "apple", "fig"]
words.sort(key=len)
print("Sorted by length:", words)Original: [42, 7, 12, 89, 23]
Sorted new list: [7, 12, 23, 42, 89]
Modified original list: [7, 12, 23, 42, 89]
Reverse sorted list: [89, 42, 23, 12, 7]
Sorted by length: ['fig', 'pear', 'apple', 'banana']Implementação passo a passo
- Use a função sorted() para classificar uma cópia da lista sem alterar os dados originais.
- Use o método .sort() diretamente no objeto de lista para modificá-lo no local e economizar memória.
- Passe reverse=True como parâmetro para ordenar os itens em ordem decrescente.
- Use key=lambda x: ... para classificar elementos com base em uma propriedade personalizada (como comprimento ou valores aninhados).
Perguntas frequentes
Qual é a diferença entre list.sort() e classificado()?
list.sort() modifica a lista no local e retorna None, enquanto sorted() deixa a lista original inalterada e retorna uma nova lista classificada.
Como você classifica uma lista de dicionários por uma chave?
Use o parâmetro key com uma função lambda ou operador.itemgetter. Por exemplo: list.sort(key=lambda item: item["idade"]).
Tópicos Relacionados
Aprenda como encontrar o comprimento de uma lista em Python usando a função len(). Entenda a complexidade do tempo O(1) e as contagens de verificação.
Como remover duplicatas de uma lista em PythonAprenda como remover duplicatas de uma lista em Python enquanto mantém ou ignora a ordem. Compare conversões de conjunto, chaves de ditado e métodos de loop.
Como mesclar duas listas em PythonAprenda as melhores maneiras de mesclar e combinar duas listas em Python. Compare o operador plus, o método de extensão, a descompactação de lista e as opções de cadeia.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Variáveis e tipos de dados Python explicados
Entenda as variáveis do Python e os principais tipos de dados (strings, inteiros, flutuantes, booleanos). Um guia completo para iniciantes sobre atribuição de memória em Python.
Folha de referências de métodos de lista Python
Guia de referência rápida para operações de lista Python. Domine a adição, inserção, remoção, classificação e fatiamento de elementos.
Python vs JavaScript: qual linguagem de programação é a melhor?
Uma comparação abrangente entre Python e JavaScript. Explore diferenças de sintaxe, desempenho, casos de uso (backend versus frontend) e exemplos de codificação.