Menu
Coddy logo textTech

Utiliser l'agrégation de données

Fait partie de la section Logic & Flow du Journey Python de Coddy — leçon 53 sur 78.

Les compréhensions de liste offrent un moyen concis de créer de nouvelles listes basées sur des itérables existants. Vous pouvez intégrer des fonctions d'agrégation de données comme sum(), min() et max() directement au sein des compréhensions de liste pour effectuer des calculs sur les éléments de la nouvelle liste pendant sa création.

Calcul de la somme des carrés :

numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
print(sum_of_squares)
# Résultat : 55

Dans cet exemple, la compréhension de liste [n * n for n in numbers] crée une liste de carrés, et la fonction sum() calcule la somme de ces carrés.

Trouver le minimum de valeurs transformées :

numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
print(min_absolute)
# Résultat : 0

Ici, la compréhension de liste [abs(n) for n in numbers] crée une liste de valeurs absolues, et la fonction min() trouve la valeur minimale dans cette liste.

Trouver le maximum de valeurs filtrées :

numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
print(max_even)
# Sortie : 6

Dans cet exemple, la compréhension de liste [n for n in numbers if n % 2 == 0] crée une liste de nombres pairs, et la fonction max() trouve la valeur maximale dans cette liste.

challenge icon

Défi

Facile

Écrivez une fonction sum_positive_evens qui prend une liste de nombres en entrée. Utilisez une compréhension de liste pour filtrer les nombres pairs positifs, puis utilisez sum() pour calculer leur total. Retournez le résultat.

Exemple d'entrée :

numbers = [-10, -5, 0, 2, 4, 7, 10, 12]

Exemple de sortie :

28

Aide-mémoire

Les compréhensions de liste peuvent être combinées avec des fonctions d'agrégation comme sum(), min() et max() pour effectuer des calculs sur des données transformées ou filtrées.

Calculer la somme des carrés :

numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
# Résultat : 55

Trouver le minimum de valeurs transformées :

numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
# Résultat : 0

Trouver le maximum de valeurs filtrées :

numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
# Résultat : 6

Essayez vous-même

def sum_positive_evens(numbers):
    # Écrire le code ici
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow