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
Istruzioni dell'esercizio
- Scrivi una funzione chiamata
get_nodes_from_partition()che accetti due argomenti — un grafo bipartitoGe unapartitiondiG— e restituisca solo i nodi di quellapartition.- Itera su tutti i nodi di
G(non sui metadati) usando un ciclofor. - Accedi alla keyword
'bipartite'del dizionario dei metadati del nodo corrente. Se è uguale apartition, aggiungi il nodo corrente alla listanodes.
- Itera su tutti i nodi di
- Usa la tua funzione
get_nodes_from_partition()insieme alla funzionelen()per:- Stampare il numero di nodi nella partizione
'projects'diG. - Stampare il numero di nodi nella partizione
'users'diG.
- Stampare il numero di nodi nella partizione
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(____(____))