Wie füge ich Listen mit gemeinsam genutzten Elementen mithilfe von NetworkX zusammen?

Mary-Kate Olsen
Freigeben: 2024-10-21 17:13:02
Original
779 Leute haben es durchsucht

How to Merge Lists with Shared Elements Using NetworkX?

Listen mit gemeinsamen Elementen zusammenführen

Bei dieser Aufgabe werden Listen mit gemeinsamen Elementen zusammengeführt, was zu einer konsolidierten Struktur führt. Betrachten Sie die folgende Eingabe:

[['a','b','c'],['b','d','e'],['k'],['o','p'],['e','f'],['p','a'],['d','g']]
Nach dem Login kopieren

Jede Unterliste stellt eine Komponente oder Gruppe von Elementen dar. Das Ziel besteht darin, Listen basierend auf gemeinsam genutzten Elementen zusammenzuführen und den Zusammenführungsprozess fortzusetzen, bis keine Listen mehr Elemente gemeinsam nutzen.

Lösung mit NetworkX

Eine geeignete Lösung nutzt NetworkX Bibliothek, die ein effizientes Werkzeug zur Darstellung und Bearbeitung von Diagrammen bietet. Durch die Konvertierung der Eingabelisten in ein Diagramm, in dem Knoten Elemente und Kanten gemeinsam genutzte Elemente darstellen, können wir Algorithmen verwenden, um die verbundenen Komponenten des Diagramms zu identifizieren.

Hier ist eine Python-Implementierung mit NetworkX:

<code class="python">import networkx as nx
from networkx.algorithms.components.connected import connected_components

def to_graph(l):
    G = nx.Graph()
    for part in l:
        # each sublist is a bunch of nodes
        G.add_nodes_from(part)
        # it also imlies a number of edges:
        G.add_edges_from(to_edges(part))
    return G

def to_edges(l):
    it = iter(l)
    last = next(it)

    for current in it:
        yield last, current
        last = current    

G = to_graph(l)
print(connected_components(G))</code>
Nach dem Login kopieren

Dieser Code wandelt die Eingabelisten in ein Diagramm um und identifiziert verbundene Komponenten, die der endgültigen zusammengeführten Liste entsprechen.

Fazit

Durch die Verwendung von NetworkX und Mithilfe von Konzepten der Graphentheorie erreichen wir eine effiziente Lösung zum Zusammenführen von Listen basierend auf gemeinsamen Elementen, was zu der gewünschten konsolidierten Struktur führt.

Das obige ist der detaillierte Inhalt vonWie füge ich Listen mit gemeinsam genutzten Elementen mithilfe von NetworkX zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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!