NetworkX ist ein Python-Paket für die Arbeit mit Grafiken.
Ich habe kürzlich gelernt, wie man andere Knoten, die sich auf einen bestimmten Knoten beziehen, im NetworkX-Richtungsgraphen "DiGraph" abruft, also schreibe ich ihn für später.
Das angenommene gültige Diagramm sieht folgendermaßen aus.
B konzentriert sich auf Knoten C, B ist das Elternteil von C und D ist das Kind von C. Auch A und B sind Vorfahren von C und D und E sind Nachkommen von C.
Importieren wir zunächst NetworkX und erstellen ein leeres Richtungsdiagramm.
>>> import networkx as nx
>>> g = nx.DiGraph()
Als nächstes erstellen Sie das Diagramm in der obigen Abbildung mit "add_path". Wenn Sie einen Pfad erstellen, können Sie anscheinend einen Knoten erstellen, ohne ihn explizit hinzuzufügen.
>>> g.add_path(["A","B","C","D","E"])
>>> g.nodes()
['E', 'C', 'D', 'A', 'B']
Um nun das Elternteil und das Kind von C zu erhalten, verwenden Sie die Methoden "Vorgänger" und "Nachfolger" von Graph g. Das Ergebnis wird als "Liste" zurückgegeben, da es jeweils mehrere Eltern und Kinder geben kann.
>>> g.predecessors("C")
['B']
>>> g.successors("C")
['D']
Verwenden Sie andererseits die Funktionen "Nachkommen" und "Vorfahren", um die Vorfahren und Nachkommen von C zu erhalten. Das Ergebnis wird mit set
zurückgegeben.
>>> nx.descendants(g, "C")
{'D', 'E'}
>>> nx.ancestors(g, "C")
{'A', 'B'}
Beachten Sie, dass die Methode für Eltern und Kinder das Ergebnis als "Liste" zurückgibt, für Vorfahren und Nachkommen die Funktion verwendet wird und das Ergebnis als "Menge" zurückgegeben wird.