IniziaInizia gratis

La keyword bipartite

Nel video, Eric ti ha presentato la keyword 'bipartite'. Questa keyword fa parte del dizionario dei metadati di un nodo e può essere assegnata sia quando aggiungi un nodo sia dopo che il nodo è stato aggiunto. Ricorda però che, per definizione, in un grafo bipartito un nodo non può essere connesso a un altro nodo della stessa partizione.

Qui scriverai una funzione che restituisce i nodi di una determinata partizione in un grafo bipartito. In questo caso, le partizioni rilevanti del grafo bipartito di Github con cui lavorerai sono 'projects' e 'users'.

Questo esercizio fa parte del corso

Analisi di reti intermedia in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Scrivi una funzione chiamata get_nodes_from_partition() che accetti due argomenti — un grafo bipartito G e una partition di G — e restituisca solo i nodi di quella partition.
    • Itera su tutti i nodi di G (non sui metadati) usando un ciclo for.
    • Accedi alla keyword 'bipartite' del dizionario dei metadati del nodo corrente. Se è uguale a partition, aggiungi il nodo corrente alla lista nodes.
  • Usa la tua funzione get_nodes_from_partition() insieme alla funzione len() per:
    • Stampare il numero di nodi nella partizione 'projects' di G.
    • Stampare il numero di nodi nella partizione 'users' di G.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Define get_nodes_from_partition()
def ____:
    # Initialize an empty list for nodes to be returned
    nodes = []
    # Iterate over each node in the graph G
    for n in ____:
        # Check that the node belongs to the particular partition
        if G.nodes[n]['____'] == ____:
            # If so, append it to the list of nodes
            ____
    return nodes

# Print the number of nodes in the 'projects' partition
print(____(get_nodes_from_partition(____, '____')))

# Print the number of nodes in the 'users' partition
print(____(____))
Modifica ed esegui il codice