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