LoslegenKostenlos loslegen

Knoten finden, die an Dreiecken beteiligt sind

NetworkX stellt mit nx.triangles(G) eine API bereit, um zu zählen, an wie vielen Dreiecken jeder Knoten beteiligt ist. Sie liefert ein Dictionary mit Knoten als Keys und der Anzahl der Dreiecke als Werten. Deine Aufgabe in dieser Übung ist es, die zuvor definierte Funktion so zu ändern, dass alle Knoten ermittelt werden, die mit einem gegebenen Knoten in einer Dreiecksbeziehung stehen.

Diese Übung ist Teil des Kurses

Einstieg in die Netzwerkanalyse mit Python

Kurs anzeigen

Anleitung zur Übung

  • Schreibe eine Funktion nodes_in_triangle() mit zwei Parametern – G und n –, die alle Knoten identifiziert, die mit einem gegebenen Knoten in einer Dreiecksbeziehung stehen.
    • Iteriere in der for-Schleife über alle möglichen Dreiecks-Kombinationen.
    • Prüfe, ob zwischen den Knoten n1 und n2 eine Kante existiert. Falls ja, füge beide Knoten zur Menge triangle_nodes hinzu.
  • Verwende deine Funktion in einem assert-Statement, um zu prüfen, dass die Anzahl der Knoten, die mit Knoten 1 des Graphen T in einer Dreiecksbeziehung stehen, gleich 35 ist.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

from itertools import combinations

# Write a function that identifies all nodes in a triangle relationship with a given node.
def nodes_in_triangle(G, n):
    """
    Returns the nodes in a graph `G` that are involved in a triangle relationship with the node `n`.
    """
    triangle_nodes = set([n])

    # Iterate over all possible triangle relationship combinations
    for n1, n2 in ____:

        # Check if n1 and n2 have an edge between them
        if ____:

            # Add n1 to triangle_nodes
            ____

            # Add n2 to triangle_nodes
            ____

    return triangle_nodes

# Write the assertion statement
assert len(____(____, ____)) == ____
Code bearbeiten und ausführen