我想在当前图形上添加边这是我的图表代码
def mGraph():
graph = {'A': {'B': 1, 'C': 2},
'B': {'C': 2, 'D': 1},
'C': {'D': 1},
'D': {'C': 2},
'E': {'F': 1},
'F': {'C': 2}}
return graph
这里是添加边缘功能
def add_edge(graph, aa1, aa2):
graph[aa1].update()[aa2]
graph[aa2].update()[aa1]
return graph
请用户输入第一节点和第二节点
def main():
graph = mGraph()
option = ''
while option != 'terminate':
print(" a. Display")
print(" c. Add Edges")
option = input("Enter your option:")
if option == "a":
print(graph)
if option == "c":
a1 = input("First Edge")
a2 = input("Second Edge")
print(add_edge(graph, a1, a2))
main()
我想将两个边链接到当前图形并想要对其进行修改。如果用户在“第一边缘”中输入A,在“第二边缘”中输入D。我想查看图表中的更改。用户输入应反映在图形上。
我有这样的错误
Traceback (most recent call last):
File "C:......", line 52, in <module>
main()
File "C:......", line 49, in main
print(add_edge(graph, a1, a2))
File "C:......", line 25, in add_edge
graph[aa1].update()[aa2]
TypeError: 'NoneType' object is not subscriptable
尝试一下:
def add_edge(graph, aa1, aa2):
first_value = graph[aa1].copy()
for k,v in first_value.items():
if aa2 in k:
graph[aa1].update({aa2:v+1})
break
else:
graph[aa1].update({aa2:1})
second_value = graph[aa2].copy()
for k,v in second_value.items():
if aa1 in k:
graph[aa2].update({aa1:v+1})
break
else:
graph[aa2].update({aa1:1})
return graph