Regroupement de données Python par clés
Ce guide aborde la tâche de regroupement des données par clés spécifiques en Python. Notre objectif est de parvenir à une solution de regroupement efficace et ordonnée pour l'ensemble de données donné.
Énoncé du problème
Considérez l'ensemble de données suivant représenté sous forme de paires clé-valeur :
<code class="python">input = [ ('11013331', 'KAT'), ('9085267', 'NOT'), ('5238761', 'ETH'), ('5349618', 'ETH'), ('11788544', 'NOT'), ('962142', 'ETH'), ('7795297', 'ETH'), ('7341464', 'ETH'), ('9843236', 'KAT'), ('5594916', 'ETH'), ('1550003', 'ETH') ]</code>
Le but est de regrouper ces paires de données par leurs clés correspondantes (le deuxième élément de chaque tuple) et de renvoyer le résultat groupé au format suivant :
<code class="python">result = [ { 'type': 'KAT', 'items': ['11013331', '9843236'] }, { 'type': 'NOT', 'items': ['9085267', '11788544'] }, { 'type': 'ETH', 'items': ['5238761', '962142', '7795297', '7341464', '5594916', '1550003'] } ] </code>
Solution
Voici les étapes pour regrouper efficacement les données :
Créer un dictionnaire : Utilisez un dictionnaire par défaut pour stocker les éléments de chaque clé. Initialisez le dictionnaire avec une usine par défaut qui crée une liste vide pour chaque nouvelle clé.
<code class="python">from collections import defaultdict res = defaultdict(list) for v, k in input: res[k].append(v)</code>
Convertissez le dictionnaire au format attendu : Pour générer le dictionnaire final Résultat, convertissez le dictionnaire en une liste de dictionnaires avec la structure souhaitée.
<code class="python">result = [{'type': k, 'items': v} for k, v in res.items()]</code>
Remarques facultatives :
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!