具有混合键的文件 - 值到Dictionary

时间:2015-10-03 12:05:40

标签: python file python-3.x dictionary graph

您好,我有一个这种格式的文件:

1 5
2 6
3 6
4 5
5 6
5 7
5 8
...

我想要的是制作这样的字典:

1:5
2:6
3:6
4:5
5: 1, 4, 6, 7, 8
6: 2, 3, 5,
....

该文件是无向图的节点之间的连接,我想将其转换为以节点为键,该节点的邻居为值(邻接列表)的字典。

我的问题是我不知道如何从文件中检索数据以使节点与其所有邻居匹配。

我试过了,

nodeList = list()
with open(file) as inputfile:
    for line in inputfile.readlines():
        nodeList.append(tuple(line.strip().split()))

d = defaultdict(list)
for k, v in nodeList:
    d[k].append(v)

结果是字典: [...('5', ['6', '7', '8']),..., ('1', ['5']),.., ('4', ['5']).....] 但这并不完全正确,因为例如我希望41显示为键5中的值。

1 个答案:

答案 0 :(得分:0)

找到它,

d = defaultdict(list)
for k, v in nodeList:
    d[k].append(v)
    d[v].append(k)

给了我想要的结果。 谢谢你的帮助。