Wie kann ich Daten in Python nach Schlüsseln gruppieren und das Ergebnis in einem bestimmten Format zurückgeben, um Daten mit sich wiederholenden Schlüsseln effektiv zu verarbeiten und die Reihenfolge aufrechtzuerhalten?

Linda Hamilton
Freigeben: 2024-10-28 14:08:30
Original
855 Leute haben es durchsucht

How can I group data by keys in Python and return the result in a specific format, effectively handling data with repeating keys and maintaining order?

Python-Gruppierung von Daten nach Schlüsseln

Diese Anleitung befasst sich mit der Aufgabe, Daten nach bestimmten Schlüsseln in Python zu gruppieren. Unser Ziel ist es, eine effiziente und geordnete Gruppierungslösung für den gegebenen Datensatz zu erreichen.

Problemstellung

Betrachten Sie den folgenden Datensatz, der als Schlüssel-Wert-Paare dargestellt wird:

<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>
Nach dem Login kopieren

Das Ziel besteht darin, diese Datenpaare nach ihren entsprechenden Schlüsseln (dem zweiten Element in jedem Tupel) zu gruppieren und das gruppierte Ergebnis im folgenden Format zurückzugeben:

<code class="python">result = [ 
           { 
             'type': 'KAT', 
             'items': ['11013331', '9843236'] 
           },
           {
             'type': 'NOT', 
             'items': ['9085267', '11788544'] 
           },
           {
             'type': 'ETH', 
             'items': ['5238761', '962142', '7795297', '7341464', '5594916', '1550003'] 
           }
         ] </code>
Nach dem Login kopieren

Lösung

Im Folgenden finden Sie die Schritte zum effizienten Gruppieren der Daten:

  1. Erstellen Sie ein Wörterbuch: Verwenden Sie ein Standarddict, um die Elemente für jeden Schlüssel zu speichern. Initialisieren Sie das Wörterbuch mit einer Standardfabrik, die für jeden neuen Schlüssel eine leere Liste erstellt.

    <code class="python">from collections import defaultdict
    
    res = defaultdict(list)
    for v, k in input:
     res[k].append(v)</code>
    Nach dem Login kopieren
  2. Konvertieren Sie das Wörterbuch in das erwartete Format:Um das Finale zu generieren Konvertieren Sie als Ergebnis das Wörterbuch in eine Liste von Wörterbüchern mit der gewünschten Struktur.

    <code class="python">result = [{'type': k, 'items': v} for k, v in res.items()]</code>
    Nach dem Login kopieren

Optionale Hinweise:

  • Vorher In Python 3.7 haben Wörterbücher die Einfügereihenfolge nicht beibehalten. Um die ursprüngliche Reihenfolge der Schlüssel beizubehalten, sollten Sie stattdessen die Verwendung eines OrderedDict in Betracht ziehen.
  • Alternativ kann auch die Funktion itertools.groupby zum Gruppieren verwendet werden, allerdings muss die Eingabe vorher sortiert werden.
  • Bei großen Datensätzen kann die Verwendung einer Datenbank mit Gruppierungsfunktion effizienter sein als die hier vorgestellten In-Memory-Lösungen.

Das obige ist der detaillierte Inhalt vonWie kann ich Daten in Python nach Schlüsseln gruppieren und das Ergebnis in einem bestimmten Format zurückgeben, um Daten mit sich wiederholenden Schlüsseln effektiv zu verarbeiten und die Reihenfolge aufrechtzuerhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!