у меня есть список ребер в виде текстового файла:график в питона из списка ребер
0 1
0 2
0 3
1 637
1 754
1 1319
1 1350
1 1463
1 1523
2 637
2 754
2 1319
2 1350
2 1463
2 1523
3 499
3 539
3 595
3 637
3 706
3 1128
3 1194
3 1213
3 1319
.. ...
мне нужно, чтобы превратить его в словарь, как это:
graph = { "a" : ["c"],
"b" : ["c", "e"],
"c" : ["a", "b", "d", "e"],
"d" : ["c"],
"e" : ["c", "b"],
"f" : []
}
моя попытка так далеко было:
import numpy as np
file_name='/Volumes/City_University/data_mining/Ecoli.txt'
key_column=0
dat=np.genfromtxt(file_name,dtype=str)
d={i:[] for i in np.unique(dat[:,key_column])}
for row in dat:
for key in d.keys():
if row[key_column]==key :d[key].append(row[1])
print (d)
Однако, это не работает должным образом поскольку я не получить новый ключ, когда это появляется в значениях: в качестве примера я получаю:
'0': ["1", "2", "3"]
'1': ['637', '754', '1319', '1350', '1463', '1523']
в '1', то "0" отсутствует.
, чтобы сделать его более простым. Если у меня есть текст, как этот
a b
c d
я должен получить результат, как: графа = { "а": [ "б"], "б": [ "а"], "с": [ "d"], "d": [ "с"]}
спасибо заранее
линия d [строка [1]] присоединять (строка [0]) дает мне ошибку. (KeyErroe: 754') – Arslan
Я предполагаю, что происходит, когда появляется во второй колонке в "754" ваши данные, но не первые. Я думаю, вы могли бы сделать d = {i: [] для i в np.unique (dat [:, 0]) + np.unique (dat [:, 1])} ', но с использованием defaultdict было бы проще. Ред. – Kevin