2016-06-29 26 views

答えて

0

Iはライブラリのインポートなしでそれをしようとしていました。 まずは簡単な辞書を作った。

x={'A':['B','C','D'],'B':['C','D'],'C':['D']} 
for i,j in x.items(): 
    for p in j: 
     if p not in x.keys(): 
       x[p]=[] 
     if p in x[i] and i not in x[p]: 
       x[p].append(i) 
print x 
{'A': ['B', 'C', 'D'], 'C': ['D', 'A', 'B'], 'B': ['C', 'D', 'A'], 'D': ['A', 'C', 'B']} 
+0

冗長なエッジを必要としないので、リストの代わりにセットを使用する必要があります。 – Scott

1

は、それは、CSVでますか?あなたが提供するデータから、あなたは無向グラフをしているようです。データは、「行」型フォーマットのいくつかの種類であると仮定すると、そのことができますループを介して(すなわち、行[0] CITY1値、および行が[1] City2この式の値である):

from collections import defaultdict 

def make_graph(data): 
    graph = defaultdict(set) 
    for row in data: 
     graph[row[0]].add(row[1]) 
     graph[row[1]].add(row[0]) #delete this line if you want a directed graph 
    return graph 

data = [ 
    ['A','B'], 
    ['C','D'], 
    ['A','C'] 
] 

print make_graph(data) 
関連する問題