NetworkX:使用列表作为值从字典向图形添加边

时间:2014-10-31 00:40:26

标签: python graph networkx

我有一个关于如何从包含列表作为值的字典向图表添加边的问题。 我想定义一个函数,它将字典作为参数,然后为listof值中的每个键+对象添加一个边。 我创建了空图形结构,并想知道是否有一种智能方法来添加整个字典。

  
    

def build_network(dict):

  G = nx.Graph() 
  

之后我只想返回构造的图形。

我知道这是一个新手问题,但任何帮助都会被感激地收到!

编辑1:该词典包含一名足球运动员作为关键词以及他一直在玩的俱乐部名单。

编辑2:字典的字符串是unicode。一个例子是{u'Drogba':[u'Le Mans',u'Chelsea',u'Galatasaray'],u'Beckham:[u'Manchester United',u'Real Madrid',u'Los Angeles Galaxy “]}

1 个答案:

答案 0 :(得分:5)

Graph对象可以将字典作为初始化参数,所以我认为它会直接做你想要的事情:

>>> d = {'Drogba': ['Le Mans', 'Chelsea', 'Galatasaray'], 'Beckham': ['Manchester United', 'Real Madrid', 'Los Angeles Galaxy']}
>>> g = nx.Graph(d)
>>> g.nodes()
['Manchester United', 'Beckham', 'Real Madrid', 'Le Mans', 'Los Angeles Galaxy', 'Drogba', 'Galatasaray', 'Chelsea']
>>> g.edges("Beckham")
[('Beckham', 'Real Madrid'), ('Beckham', 'Los Angeles Galaxy'), ('Beckham', 'Manchester United')]
>>> g.neighbors("Drogba")
['Galatasaray', 'Chelsea', 'Le Mans']