Menu
Coddy logo textTech

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: 55

Neste 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: 0

Aqui, 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: 6

Neste 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.

challenge icon

Desafio

Fácil

Escreva 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:

28

Folha 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: 55

Encontrar o mínimo de valores transformados:

numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
# Saída: 0

Encontrar 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: 6

Experimente você mesmo

def sum_positive_evens(numbers):
    # Escreva o código aqui
quiz iconTeste seus conhecimentos

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