Usando Agregação de Dados
Parte da seção Logic & Flow do Journey de Python da Coddy — lição 53 de 78.
List comprehensions fornecem uma maneira concisa de criar novas listas com base em iteráveis existentes. Você pode integrar funções de agregação de dados como sum(), min() e max() diretamente dentro de list comprehensions para realizar cálculos nos elementos da nova lista enquanto ela está sendo criada.
Calculando a Soma dos Quadrados:
numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
print(sum_of_squares)
# Saída: 55Neste exemplo, a list comprehension [n * n for n in numbers] cria uma lista de quadrados, e a função sum() calcula a soma desses quadrados.
Encontrando o Mínimo de Valores Transformados:
numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
print(min_absolute)
# Saída: 0Aqui, a compreensão de lista [abs(n) for n in numbers] cria uma lista de valores absolutos, e a função min() encontra o valor mínimo nesta lista.
Encontrando o Máximo de Valores Filtrados:
numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
print(max_even)
# Saída: 6Neste exemplo, a compreensão de lista [n for n in numbers if n % 2 == 0] cria uma lista de números pares, e a função max() encontra o valor máximo nesta lista.
Desafio
FácilEscreva uma função sum_positive_evens que recebe uma lista de números como entrada. Use uma list comprehension para filtrar números pares positivos, então use sum() para calcular o total deles. Retorne o resultado.
Exemplo de entrada:
numbers = [-10, -5, 0, 2, 4, 7, 10, 12]Exemplo de saída:
28Folha de consulta
Compreensões de lista podem ser combinadas com funções de agregação como sum(), min() e max() para realizar cálculos em dados transformados ou filtrados.
Calcular a soma dos quadrados:
numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
# Saída: 55Encontrar o mínimo de valores transformados:
numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
# Saída: 0Encontrar o máximo de valores filtrados:
numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
# Saída: 6Experimente você mesmo
def sum_positive_evens(numbers):
# Escreva o código aquiEsta 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