python将图的点边关系转换成邻接矩阵

list2=['A','B','C','D','E','F']
nodes=[0. 1. 2. 4. 5.]
V_E=[(0, 1, 5), (0, 2, 5), (0, 4, 4), (0, 5, 4), (1, 2, 5), (1, 4, 2), (1, 5, 4), (2, 4, 3), (2, 5, 3), (4, 5, 3)]
#生成邻接矩阵(处理部分)
    nodes1=[int(i) for i in nodes]#结点(数字表示的)
    nodes=[list2[i] for i in nodes1]#按字母顺序替换成字母
    #print(nodes)
    V_E=[list(item) for item in V_E]#V_E中元组转换成列表
    relation_list=[]
    for item in V_E:
        item1=[list2[i] for i in item[0:2]]
        item=[str(i) for i in item]
        item1.append(item[2])
        relation_list.append(item1)    
    print(relation_list)
    nodes_dict={nodes[i]:(list2.index(nodes[i])) for i in range(len(nodes))}
    print(nodes_dict)
    #邻接矩阵
    relation_matrix = [[0 for i in range(len(nodes))] for i in range(len(nodes))]
    for [x,y,e] in relation_list:
        x_index=nodes1.index(nodes_dict[x])        
        y_index=nodes1.index(nodes_dict[y])
        relation_matrix[x_index][y_index]=e
    print('\n',relation_matrix)#生成邻接矩阵

输出

[['A', 'B', '5'], ['A', 'C', '5'], ['A', 'E', '4'], ['A', 'F', '4'], ['B', 'C', '5'], ['B', 'E', '2'], ['B', 'F', '4'], ['C', 'E', '3'], ['C', 'F', '3'], ['E', 'F', '3']]
{'A': 0, 'B': 1, 'C': 2, 'E': 4, 'F': 5}

 [[0, '5', '5', '4', '4'], [0, 0, '5', '2', '4'], [0, 0, 0, '3', '3'], [0, 0, 0, 0, '3'], [0, 0, 0, 0, 0]]

自己写的代码里因为经过数据处理的过程,所以字母不是连续的,用了好多步骤转换字母和数字,看着比较乱。。。。所以自用

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值