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
Libérer: 2025-01-02 18:02:39
original
240 Les gens l'ont consulté

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}.")
Copier après la connexion

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.
Copier après la connexion

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}.")
Copier après la connexion

Sortie :

animals: bear and duck.
plants: cactus.
vehicles: speed boat and school bus.
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal