sorted() e a Função key
Ordene números, strings e tuplas.
sorted() e a Função key é uma aula grátis de Competitive Programming Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Competitive Programming Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Competitive Programming Academy inclui 4 aulas no total.
Ordenar ajuda a vencer competições
Muitos problemas de competições ficam fáceis quando os dados estão ordenados. Sua primeira ferramenta é sorted(), que retorna uma nova lista ordenada. 🏆
sorted() retorna uma cópia
Chamar sorted(nums) não altera a lista original e fornece uma nova lista ordenada. É ótimo quando você ainda precisa da entrada depois.
nums = [3, 1, 2]
print(sorted(nums)) # [1, 2, 3]
print(nums) # [3, 1, 2]list.sort() ordena no próprio lugar
Quando você não precisa da ordem original, list.sort() ordena no próprio lugar e retorna None. Isso economiza memória em vetores grandes.
nums = [3, 1, 2]
nums.sort()
print(nums) # [1, 2, 3]A ordem padrão é crescente
Por padrão, Python ordena do menor para o maior. Os números vão do menor ao maior, e as strings seguem a ordem de dicionário, caractere por caractere.
print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']Inverta com reverse
Passe reverse=True para ordenar do maior para o menor. É perfeito quando uma etapa gulosa precisa dos maiores elementos primeiro.
print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]Conheça o argumento key
O argumento key informa ao mecanismo de ordenação como classificar cada item. Python chama key para cada elemento e ordena pelos valores retornados.
words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']key com uma lambda
Uma pequena lambda permite ordenar por qualquer expressão diretamente. Aqui, ordenamos os números pela distância deles até zero.
vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]Ordene objetos por um campo
Com tuplas ou registros, aponte key para o campo importante. O restante do item acompanha a ordenação sem trabalho adicional.
people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]A ordenação é estável
A ordenação do Python é estável: chaves iguais mantêm sua ordem relativa original. Isso permite encadear ordenações para desempatar com segurança.
key é melhor do que comparar manualmente
Uma key é calculada uma vez por elemento, portanto continua rápida em entradas grandes. Use-a em vez de trocar os itens manualmente.
Ordenar custa O(n log n)
Python ordena em tempo O(n log n). Para n de até algumas centenas de milhares, isso normalmente cabe com folga em um limite de um segundo.
Verificação rápida
Você precisa ordenar a lista, mas deve manter a original intacta.
Recapitulação
Você pode ordenar dados com sorted() ou ordenar no próprio lugar, inverter com reverse e classificar qualquer coisa usando uma key. A ordenação estável mantém os empates organizados. 🎉
Perguntas Frequentes
A aula “sorted() e a Função key” é grátis?
Sim — o texto completo de “sorted() e a Função key” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Competitive Programming Academy, atualize para CoddyKit PRO. O curso de Competitive Programming Academy inclui 4 aulas no total.
O que vou aprender em “sorted() e a Função key”?
Ordene números, strings e tuplas. Você pratica Competitive Programming Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Competitive Programming Academy?
Nenhuma experiência prévia é necessária. Competitive Programming Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “sorted() e a Função key”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Competitive Programming Academy?
Sim. Cada aula de Competitive Programming Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- sorted() e a Função key
- Ordene por Vários Campos
- Ordem Personalizada com functools.cmp_to_key
- Por que Ordenar Primeiro Desbloqueia Soluções