Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich Listen mit gemeinsam genutzten Elementen mithilfe von NetworkX zusammen?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-21 17:13:02782Durchsuche

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']]

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>

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!

Stellungnahme:
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