我如何在图形(初学者)中添加边线

问题描述 投票:-1回答:1

我想在当前图形上添加边这是我的图表代码

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
python graph
1个回答
0
投票

尝试一下:

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
© www.soinside.com 2019 - 2024. All rights reserved.