私はこのデータを持っています。私は上記のデータ辞書とノードのみを使用してグラフを作成
x={A:[B,C,D],
B:[A,C,D],
C:[A,B,D],
D:[A,B,C]
}
からこのように見て辞書を作成するにはどうすればよい
CITY1 CITY2
A B
A C
A D
B C
B D
C D
おかげ
私はこのデータを持っています。私は上記のデータ辞書とノードのみを使用してグラフを作成
x={A:[B,C,D],
B:[A,C,D],
C:[A,B,D],
D:[A,B,C]
}
からこのように見て辞書を作成するにはどうすればよい
CITY1 CITY2
A B
A C
A D
B C
B D
C D
おかげ
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']}
は、それは、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)
冗長なエッジを必要としないので、リストの代わりにセットを使用する必要があります。 – Scott