我想创建一个字典列表的字典

2024-03-29 09:08:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从节点对及其权重的列表中创建一个字典数组。你知道吗

nets = pd.read_table('data/nodes.txt', header = None)
bb = np.array(nets).tolist()
graph = collections.defaultdict(dict)

for row in bb:
    graph[row[0]][row[1]]=row[2]
    graph[row[1]][row[0]] = row[2]

print(dict(graph))

所以这本字典

{0: {1: 2, 2: 3, 3: 6, 7: 8}, 1: {0: 2, 2: 5, 4: 7}, 2: {0: 3, 1: 5, 11: 5, `5: 4}, 3: {0: 6, 11: 4, 6: 2}, 4: {1: 7}, 5: {8: 3, 2: 4}, 6: {9: 3, 3: 2}, 7: {0: 8}, 8: {5: 3}, 9: {10: 6, 6: 3}, 10: {9: 6}, 11: {2: 5, 3: 4}}`

我想要一张这样的表格。你知道吗

{0: [{1: 2}, {2: 3}, {3: 6}, {7: 8}], 
1: [{0: 2}, {2: 5}, {4: 7}], 
2: [{0: 3}, {1: 5}, {11: 5}, {5: 4}],
3: [{0: 6}, {11: 4}, {6: 2}],
4: [{1: 7}], 
5: [{8: 3}, {2: 4}], 
6: [{9: 3}, {3: 2}], 
7: [{0: 8}, 8: {5: 3}], 
9: [{10: 6}, {6: 3}], 
10: [{9: 6}], 
11: [{2: 5}, {3: 4}]}

Tags: 列表readdata字典节点table数组dict
1条回答
网友
1楼 · 发布于 2024-03-29 09:08:39

如果你真的愿意,你可以很容易地做到这一点,尽管我会仔细研究一下你将在哪里使用这个数据结构,看看你现有的更具逻辑性的结构是否可以改为工作。你知道吗

不管怎样,这里有一个快速实现,它可以满足您的需求:

graph = collections.defaultdict(list)

for row in bb:
    graph[row[0]].append({row[1]: row[2]})
    graph[row[1]].append({row[0]: row[2]})

相关问题 更多 >