Maison >développement back-end >Tutoriel Python >Comment la fonction « itertools.groupby() » de Python regroupe-t-elle les données ?

Comment la fonction « itertools.groupby() » de Python regroupe-t-elle les données ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-02 18:02:39300parcourir

How Does Python's `itertools.groupby()` Function Group Data?

Démystifier Itertools.groupby() de Python

Comprendre l'essence d'Itertools.groupby()

Itertools.groupby(), une puissante fonction Python, vous permet de partitionner les données en groupes logiques éléments basés sur un critère spécifié. Il faut deux paramètres : les données à regrouper et une fonction clé qui définit la condition de regroupement.

L'essentiel de la mise en œuvre

  1. Attribuer des variables intermédiaires : Créez des listes, des groupes et des clés uniques, pour stocker les données et les clés du groupe valeurs.
  2. Itérer sur des données groupées : Utilisez une boucle for pour parcourir l'itérateur groupby.
  3. Store les itérateurs de groupe : Convertissez les itérateurs de groupe en listes en utilisant list(g) pour l'accessibilité.
  4. Maintenir une liste de clés uniques : Remplissez les clés uniques avec la clé de regroupement actuelle.

Exemple avec des noms de variables clairs

from itertools import groupby

things = [("animal", "bear"), ("animal", "duck"), ("plant", "cactus"), ("vehicle", "speed boat"), ("vehicle", "school bus")]

for key, group in groupby(things, lambda x: x[0]):
    print(f"A {group[0]} is a {key}.")

Sortie :

A bear is a animal.
A duck is a animal.
A cactus is a plant.
A speed boat is a vehicle.
A school bus is a vehicle.

Importance des données Tri

Notez que, dans certains cas, vous devrez peut-être trier vos données au préalable pour garantir un regroupement précis.

Approche de compréhension de liste

Une implémentation alternative utilisant la liste compréhensions :

for key, group in groupby(things, lambda x: x[0]):
    listOfThings = " and ".join([thing[1] for thing in group])
    print(f"{key}s:  {listOfThings}.")

Sortie :

animals: bear and duck.
plants: cactus.
vehicles: speed boat and school bus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn