Python classifica os itens da lista no local para ordenar os itens
A lista de classificação do Python organiza uma lista usando a ordem padrão ou uma chave personalizada. Use-o quando a lista precisar ser reordenada para corresponder à sua lógica para uso posterior. Importante! A classificação no local atualiza a lista original em vez de criar uma nova.
Exemplo de lista de classificação Python para pedidos no local
Saída:
A saída aparecerá aqui...
Saída:
['Ana', 'Mia', 'Zoe']
Como este exemplo funciona
namesinicia em uma ordem não classificada que corresponde à forma como os dados chegaram.names.sort()reordena a mesma lista no lugar, para que cada uso posterior veja a nova ordem.- A saída mostra a lista agora classificada em ordem alfabética.
Erros Comuns
Erro 1: esperar que sort() retorne uma nova lista.
scores = [88, 92, 75]
new_scores = scores.sort()
print(new_scores)
scores = [88, 92, 75]
scores.sort()
print(scores)
Por que isso acontece: list.sort() sempre retorna None, pois altera a lista que você já possui.
Erro 2: classificação de tipos mistos em Python 3.
items = [3, "10", 2]
items.sort()
items = ["3", "10", "2"]
items.sort(key=int)
print(items)
Por que isso acontece: números e strings não são diretamente comparáveis, então você deve normalizar os tipos ou fornecer uma chave.
Erro 3: esquecer que a classificação de strings diferencia maiúsculas de minúsculas.
names = ["ana", "Mia", "zoe"]
names.sort()
print(names)
names = ["ana", "Mia", "zoe"]
names.sort(key=str.lower)
print(names)
Por que isso acontece: as letras maiúsculas são classificadas antes das minúsculas por padrão, o que pode parecer fora de ordem para os nomes.
lista de classificação vs classificação: qual usar
Use list.sort() quando… | Use sorted() quando… |
|---|---|
| Você já tem uma lista e deseja reordená-la. | Você precisa de uma nova lista e deseja manter o pedido original intacto. |
| Você deseja a opção com maior eficiência de memória. | Você está classificando qualquer iterável, não apenas uma lista. |
Você concorda com o método que retorna None. | Você deseja os dados classificados como um novo valor. |
Regra prática: procure list.sort() quando a mesma lista deve mudar; use sorted() quando precisar de um resultado classificado separado.
Considerações de desempenho
list.sort() é amigável à memória porque reorganiza a lista existente em vez de alocar uma nova. Se você não precisar do pedido original, geralmente é a opção mais rápida e com maior eficiência de memória. A função key é chamada uma vez por item, portanto, mantenha essa função simples para listas grandes. Se você precisar manter a lista original intacta, sorted() troca memória extra por essa segurança.
Mais padrões para classificação de listas
Classifique por uma chave derivada, como comprimento.
labels = ["box", "container", "bin"]
labels.sort(key=len)
print(labels)
Isso é útil quando a regra de exibição não é alfabética e você deseja uma ordem clara por tamanho. Ele mantém a lista no lugar enquanto aplica uma regra personalizada.
Classifique em ordem decrescente para tabelas de classificação.
scores = [88, 92, 75]
scores.sort(reverse=True)
print(scores)
A ordem decrescente é comum para exibições N principais e reverse=True mantém o código simples.
A lista ainda está ordenada, apenas na direção oposta.
Quando usar a lista de classificação Python
- Reordene uma lista que será reutilizada em vários lugares posteriormente.
- Mantenha baixo o uso de memória evitando a criação de uma segunda lista.
- Aplique uma função
keyquando a ordem natural não for o que você precisa. - Evite quando for necessário preservar a ordem original; use
sorted()ou copie a lista primeiro. - Evite-o para iteráveis que não sejam de lista, a menos que você os converta explicitamente em uma lista.