Hitta noder som ingår i trianglar
NetworkX tillhandahåller ett API för att räkna hur många trianglar varje nod ingår i: nx.triangles(G). Det returnerar en ordbok där noderna är nycklar och antalet trianglar är värden. Din uppgift i den här övningen är att modifiera den tidigare definierade funktionen så att den extraherar alla noder som befinner sig i en triangelrelation med en given nod.
Den här övningen är en del av kursen
Introduktion till nätverksanalys i Python
Övningsinstruktioner
- Skriv en funktion
nodes_in_triangle()med två parametrar –Gochn– som identifierar alla noder i en triangelrelation med en given nod.- I
for-slingan itererar du över alla möjliga kombinationer av triangelrelationer. - Kontrollera om noderna
n1ochn2har en kant mellan sig. Om de har det, lägg till båda noderna i mängdentriangle_nodes.
- I
- Använd din funktion i ett
assert-uttryck för att kontrollera att antalet noder i en triangelrelation med nod1i grafenTär lika med35.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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(____(____, ____)) == ____