Ordenando Dados de Forma Eficiente
Parte da seção Logic & Flow do Journey de Python da Coddy — lição 48 de 78.
A ordenação é uma operação fundamental na ciência da computação, e o Python oferece ferramentas integradas poderosas para ordenar dados de forma eficiente. A principal função para ordenação é sorted(), que pode ser usada para ordenar vários tipos de dados, incluindo números, strings e objetos mais complexos.
Ordenação Básica:
A função sorted() recebe um iterável (ex: uma lista, tupla ou conjunto) como seu argumento e retorna uma nova lista contendo os elementos ordenados. Por padrão, ela ordena em ordem crescente.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# Saída: [1, 1, 2, 3, 4, 5, 6, 9]Neste exemplo, sorted() ordena a lista numbers em ordem crescente.
Ordenação Reversa:
Para ordenar em ordem decrescente, você pode usar o parâmetro reverse e defini-lo como True.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# Saída: [9, 6, 5, 4, 3, 2, 1, 1]Aqui, sorted() ordena a lista numbers em ordem decrescente.
Ordenando Strings:
A função sorted() também pode ordenar strings com base em sua ordem lexicográfica (ou seja, a ordem em que apareceriam em um dicionário).
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# Saída: ['apple', 'banana', 'cherry']Neste exemplo, o sorted() ordena a lista words em ordem alfabética.
Ordenação Personalizada com a Função Key:
Para necessidades de ordenação mais complexas, você pode usar o parâmetro key para especificar uma função que determina a ordem de ordenação. A função key é aplicada a cada elemento antes da ordenação e os valores retornados são usados para comparação.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# Saída: ['fig', 'kiwi', 'banana']Neste caso, sorted() ordena a lista words com base no comprimento de cada palavra, usando a função len() como a key.
Desafio
FácilEscreva um programa que realize as seguintes tarefas de ordenação usando a função sorted():
- Ordene uma lista de números em ordem crescente.
- Ordene a mesma lista de números em ordem decrescente.
- Ordene uma lista de strings em ordem alfabética.
- Ordene a mesma lista de strings com base em seu comprimento.
Folha de consulta
A função sorted() ordena dados e retorna uma nova lista com os elementos ordenados.
Ordenação básica (ordem crescente):
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
# Saída: [1, 1, 2, 3, 4, 5, 6, 9]Ordenação reversa (ordem decrescente):
sorted_numbers_desc = sorted(numbers, reverse=True)
# Saída: [9, 6, 5, 4, 3, 2, 1, 1]Ordenando strings em ordem alfabética:
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
# Saída: ['apple', 'banana', 'cherry']Ordenação personalizada com função key:
sorted_words_by_length = sorted(words, key=len)
# Ordena pelo comprimento da stringExperimente você mesmo
# Entradas iniciais
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# Tarefa 1: Ordenar números em ordem crescente
# Tarefa 2: Ordenar números em ordem decrescente
# Tarefa 3: Ordenar palavras em ordem alfabética
# Tarefa 4: Ordenar palavras por comprimento
# Substitua 'pass' pelo seu código para cada tarefa
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None
# Imprimir os resultados
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Logic & Flow
1Exploração de Variáveis
ConstantesAtribuição de Múltiplas VariáveisTroca de VariáveisVariáveis de Espaço ReservadoArredondar NúmerosCasting de Listas4Aplicativo de Agenda de Contatos
Exibir MenuAdicionar Contato7Conjuntos Parte 2
Operações Matemáticas Parte 1Operações Matemáticas Parte 2Revisão - Caça ao TesouroSubconjuntos e SuperconjuntosIterando sobre ConjuntosRevisão - Rastreador de Torneio10List Comprehensions Básicas
A SintaxeCriando Listas SimplesAdicionando CondiçõesUsando Agregação de DadosRecapitulação - House Of ListsRecapitulação - Elements Of Freedom13Sistema de Gerenciamento de Inventário
Visão Geral do ProjetoAdicionar Item2Dicionários Parte 1
O que é um Dicionário?Criando um DicionárioAcessando ValoresModificando DicionáriosRecapitulação - Gerenciador de Receitas5Tomada de Decisão Avançada
Operador TernárioVerificações de PertencimentoVerificações de IdentidadeErros de IndentaçãoRecapitulação - Filtro de Férias8Gerenciador de Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno11Funções Avançadas
Retornando Múltiplos ValoresFunções Lambda Parte 1Funções Lambda Parte 2Desafio de Recapitulação - Lambda SortFunções Recursivas Parte 1Funções Recursivas Parte 2Recapitulação - Somar Listas Aninhadas14Funções de Ordem Superior
A Função MapA Função FilterRecapitulação - Validador de E-mailRecapitulação - Processador de Números3Dicionários Parte 2
Métodos de DicionárioDicionários AninhadosVerificando ChavesIterando em DicionáriosRecapitulação - Contador de Frequência6Conjuntos Parte 1
O que é um Conjunto?Operações BásicasMétodos de ConjuntosRecapitulação - Remover Duplicatas9Agregação de Dados Avançada
Usando SumEncontrando Mínimo e MáximoOrdenando Dados de Forma EficienteRecapitulação - Dictionary Sorter