Obter o grau de cada nós em um grafo por Networkx em python

suponha que eu tenho um conjunto de dados como abaixo que mostra um grafo não direcionado:

1   2
1   3
1   4
3   5
3   6
7   8
8   9
10  11

tenho um script em python como este:

for s in ActorGraph.degree():
    print(s)

isto é um dicionário consiste de chave e valor que as chaves são nomes de nó e os valores são grau de nós:

('9', 1)
('5', 1)
('11', 1)
('8', 2)
('6', 1)
('4', 1)
('10', 1)
('7', 1)
('2', 1)
('3', 3)
('1', 3)

em networkx a documentação sugere usar valores() para ter o grau de nós. agora eu gosto de ter apenas chaves que são o grau de nós e eu uso esta parte do script mas não funciona e dizer object has no attribute 'values':

for s in ActorGraph.degree():
        print(s.values())
Como posso fazer isso?

Author: pari khodaparast, 2017-11-22

1 answers

Está a usar a versão 2. 0 do networkx. Que mudou de usar um dict Para G.degree() para usar um dict-like (mas não dict) DegreeView. Vereste guia .

Para ter os graus numa lista, pode usar uma compreensão da lista:

degrees = [val for (node, val) in G.degree()]
 2
Author: rodgdor, 2017-11-23 09:30:33