Python – Gruppiert das erste Element in der Liste der Tupel nach dem zweiten Element

王林
Freigeben: 2023-09-14 15:49:02
nach vorne
1248 Leute haben es durchsucht

Python - 将元组列表中的第一个元素按第二个元素进行分组

In Python können Sie verschiedene Methoden verwenden, um Elemente in einer Liste von Tupeln basierend auf dem Wert des zweiten Elements zu gruppieren, z. B. die Verwendung eines Wörterbuchs oder die Verwendung der Methode itertools.groupby() und die Verwendung von defaultdict aus einer Sammlung. Das Gruppieren des ersten Elements nach dem zweiten Element in einer Liste von Tupeln bedeutet, dass Tupel mit demselben zweiten Element in einer einzigen Elementgruppe gruppiert werden können. In diesem Artikel besprechen wir, wie diese Methoden implementiert werden, damit wir das erste Element einfach basierend auf dem zweiten Element in der Liste der Tupel gruppieren können.

Methode 1: Verwenden Sie ein Wörterbuch

Bei dieser Methode wird ein Wörterbuch zum Gruppieren von Elementen verwendet. Diese Methode verwendet Schlüssel-Wert-Paare eines Wörterbuchs zum Speichern des ersten Elements und verwendet das zweite Element als Schlüssel.

Grammatik

dict_name[key]
Nach dem Login kopieren

Hier wird die Notation mit eckigen Klammern verwendet, um einem bestimmten Schlüssel im Wörterbuch einen Wert zuzuweisen. Wenn der Schlüssel bereits vorhanden ist, wird der Wert an die mit dem Schlüssel verknüpfte Liste angehängt; andernfalls wird ein neues Schlüssel-Wert-Paar erstellt.

Beispiel

Im folgenden Beispiel initialisieren wir zunächst ein leeres Wörterbuch „grouped_data“. Dann extrahieren wir für jedes Tupel in der Datenliste das zweite Element als Schlüssel (Element[1]) und das erste Element als Wert (Element[0]). Anschließend prüfen wir, ob der Schlüssel bereits in grouped_data vorhanden ist. Wenn ja, hängen wir den Wert an die bestehende Werteliste an, die diesem Schlüssel zugeordnet ist. Andernfalls erstellen wir ein neues Schlüssel-Wert-Paar, wobei „key“ das zweite Element und „value“ eine neue Liste mit dem ersten Element ist. Schließlich durchlaufen wir das Wörterbuch „grouped_data“ und geben jeden Schlüssel und seinen entsprechenden Wert aus.

# Sample tuple list data = [('Apple', 'Fruit'), ('Banana', 'Fruit'), ('Carrot', 'Vegetable'), ('Potato', 'Vegetable')] # Grouping elements using a dictionary grouped_data = {} for item in data: key = item[1] value = item[0] if key in grouped_data: grouped_data[key].append(value) else: grouped_data[key] = [value] # Printing the grouped data for key, values in grouped_data.items(): print(key, ":", values)
Nach dem Login kopieren

Ausgabe

Fruit : ['Apple', 'Banana'] Vegetable : ['Carrot', 'Potato']
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Methode 2: Verwenden Sie itertools.groupby()

Die Funktion

itertools.groupby() bietet eine weitere effiziente Möglichkeit, Elemente basierend auf bestimmten Kriterien zu gruppieren. Bei dieser Methode müssen die Eingabedaten nach dem zweiten Element sortiert werden.

Grammatik

groups[key]
Nach dem Login kopieren

Hier iteriert die Funktion „groupby()“ im Modul „itertools“ das Objekt „groupby“. Diese Funktion gibt den Schlüssel und eine Reihe aufeinanderfolgender Elemente mit demselben Wert zurück. Erstellen Sie dann Schlüssel-Wert-Paare im Gruppenwörterbuch mit Schlüssel und Gruppe, wobei Schlüssel der eindeutige Wert und Wert die Liste der gruppierten Elemente ist.

Beispiel

Im folgenden Beispiel importieren wir die Funktion groupby() aus dem Modul itertools. Die Funktion groupby() erfordert, dass die Eingabedaten basierend auf dem Gruppierungsschlüssel sortiert werden. Daher verwenden wir die Funktion sorted() zum Sortieren der Datenliste und stellen eine Lambda-Funktion als Schlüsselargument bereit, um die Sortierung basierend auf dem zweiten Element (x[1]) anzugeben. Anschließend iterieren wir über die Ausgabe der Funktion „groupby()“, die einen Schlüssel und einen Iterator gruppierter Elemente zurückgibt. Für jede Gruppe extrahieren wir den Schlüssel und erstellen eine Liste des entsprechenden ersten Elements (item[0]).

from itertools import groupby # Sample tuple list data = [('Apple', 'Fruit'), ('Banana', 'Fruit'), ('Carrot', 'Vegetable'), ('Potato', 'Vegetable')] # Sorting the data based on the second element sorted_data = sorted(data, key=lambda x: x[1]) # Grouping elements using itertools.groupby() grouped_data = {} for key, group in groupby(sorted_data, key=lambda x: x[1]): grouped_data[key] = [item[0] for item in group] # Printing the grouped data for key, values in grouped_data.items(): print(key, ":", values)
Nach dem Login kopieren

Ausgabe

Fruit : ['Apple', 'Banana'] Vegetable : ['Carrot', 'Potato']
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Methode 3: Standarddict aus der Sammlung verwenden

Die Klasse defaultdict im Collections-Modul bietet eine praktische Möglichkeit, Elemente in einer Liste von Tupeln zu gruppieren. Es erstellt automatisch eine neue Liste als Standardwert für jeden Schlüssel und vereinfacht so den Gruppierungsprozess.

Grammatik

groups[item].append(item)
Nach dem Login kopieren

Hier verwendet die Syntax die Funktion defaultdict() aus dem Collections-Modul, um ein defaultdict-Objekt mit dem Namen groups zu initialisieren, dessen Standardwert eine leere Liste ist. Die zweite Codezeile verwendet den Schlüssel (Element), um auf die mit diesem Schlüssel verknüpfte Liste im Gruppenwörterbuch zuzugreifen, und hängt das Element an die Liste an.

Beispiel

Im folgenden Beispiel importieren wir die defaultdict-Klasse aus dem Collections-Modul. Beim Initialisieren des grouped_data-Wörterbuchs verwenden wir defaultdict(list), um den Standardwert auf eine leere Liste festzulegen. Anschließend durchlaufen wir die Datenliste und extrahieren das zweite Element als Schlüssel (Element[1]) und das erste Element als Wert (Element[0]). Mithilfe von defaultdict können wir den Wert direkt an die mit diesem Schlüssel verknüpfte Liste anhängen.

from collections import defaultdict # Sample tuple list data = [('Apple', 'Fruit'), ('Banana', 'Fruit'), ('Carrot', 'Vegetable'), ('Potato', 'Vegetable')] # Grouping elements using defaultdict grouped_data = defaultdict(list) for item in data: grouped_data[item[1]].append(item[0]) # Printing the grouped data for key, values in grouped_data.items(): print(key, ":", values)
Nach dem Login kopieren

Ausgabe

Fruit : ['Apple', 'Banana'] Vegetable : ['Carrot', 'Potato']
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Fazit

In diesem Artikel haben wir besprochen, wie man das erste und zweite Element in einer Liste von Tupeln mit verschiedenen Methoden in Python gruppiert. Durch die Verwendung von Wörterbüchern können wir gruppierte Daten einfach speichern und darauf zugreifen. Die Funktion itertools.groupby() bietet eine effiziente Lösung, erfordert jedoch eine Sortierung der Daten. Darüber hinaus vereinfacht die Klasse defaultdict den Gruppierungsprozess, indem sie automatisch Listen als Standardwerte für jeden Schlüssel erstellt.

Das obige ist der detaillierte Inhalt vonPython – Gruppiert das erste Element in der Liste der Tupel nach dem zweiten Element. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
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 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!