python将关系对转换为邻接矩阵
时间: 2023-05-26 13:07:53 浏览: 240
以下是将关系对(形如(a,b)和(b,c))转换为邻接矩阵的Python代码示例:
```python
# 定义关系对列表
relations = [("a","b"), ("b","c"), ("c","d")]
# 创建节点列表
nodes = []
for r in relations:
if r[0] not in nodes:
nodes.append(r[0])
if r[1] not in nodes:
nodes.append(r[1])
# 创建邻接矩阵
matrix = [[0 for x in range(len(nodes))] for y in range(len(nodes))]
for r in relations:
i = nodes.index(r[0])
j = nodes.index(r[1])
matrix[i][j] = 1
# 输出邻接矩阵
print(" ",end=" ")
for n in nodes:
print(n,end=" ")
print()
for i in range(len(nodes)):
print(nodes[i]," ",end="")
for j in range(len(nodes)):
print(matrix[i][j],end=" ")
print()
```
输出:
```
a b c d
a 0 1 0 0
b 0 0 1 0
c 0 0 0 1
d 0 0 0 0
```
其中,节点列表用于存储矩阵中节点的顺序,方便后续填充邻接矩阵。邻接矩阵的值表示节点之间的关系(例如,如果第i行第j列的值为1,则表示第i个节点和第j个节点之间存在直接关系)。邻接矩阵的行和列分别对应节点列表中的节点,因此可以通过节点列表中的索引来访问邻接矩阵的值。
阅读全文