IniziaInizia gratis

Calcola il numero di vicini per ogni nodo

Come valuti se un nodo è importante oppure no? Ci sono diversi modi; qui ne osserverai uno: il numero di vicini che un nodo ha.

Ogni grafo NetworkX G espone un metodo .neighbors(n) che restituisce un iteratore dei nodi vicini al nodo n. Per cominciare, usa questo metodo nell'IPython Shell sulla rete Twitter T per ottenere i vicini del nodo 1. Questo ti aiuterà a capire come funziona la funzione. Poi, il tuo compito in questo esercizio è scrivere una funzione che restituisca tutti i nodi che hanno m vicini.

Questo esercizio fa parte del corso

Introduzione all'analisi delle reti in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Scrivi una funzione chiamata nodes_with_m_nbrs() che accetta due parametri - G e m - e restituisce tutti i nodi che hanno m vicini. Per farlo:
    • Itera su tutti i nodi in G (non includere i metadati).
    • Usa le funzioni len() e list() insieme al metodo .neighbors() per calcolare il numero totale di vicini che il nodo n nel grafo G ha.
      • Se il numero di vicini del nodo n è uguale a m, aggiungi n all'insieme nodes usando il metodo .add().
    • Dopo aver iterato su tutti i nodi in G, restituisci l'insieme nodes.
  • Usa la tua funzione nodes_with_m_nbrs() per recuperare tutti i nodi che hanno 6 vicini nel grafo T.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Define nodes_with_m_nbrs()
def ____:
    """
    Returns all nodes in graph G that have m neighbors.
    """
    nodes = set()

    # Iterate over all nodes in G
    for n in ____:

        # Check if the number of neighbors of n matches m
        if ____ == ____:

            # Add the node n to the set
            ____

    # Return the nodes with m neighbors
    return nodes

# Compute and print all nodes in T that have 6 neighbors
six_nbrs = ____
print(____)
Modifica ed esegui il codice