python класс для структуры данных графа содержит метод добавления края, который мне сложно понять - PullRequest
0 голосов
/ 30 мая 2020

Я изучаю python, и это упражнение, я пытаюсь построить данные графика.

class Vertex:
  def __init__(self, value):
    self.value = value
    self.edges = {}

  def add_edge(self, vertex, weight = 0):
    self.edges[vertex] = weight

  def get_edges(self):
    return list(self.edges.keys())
class Graph:
  def __init__(self, directed = False):
    self.graph_dict = {}
    self.directed = directed

  def add_vertex(self, vertex):
    self.graph_dict[vertex.value] = vertex

  def add_edge(self, from_vertex, to_vertex, weight = 0):
    self.graph_dict[from_vertex.value].add_edge(to_vertex.value, weight) 
    if not self.directed:
      self.graph_dict[to_vertex.value].add_edge(from_vertex.value, weight) 

В классе графика в методе add_edge я нахожу следующий комплекс кода, и я не Не понимаю, как это работает.

self.graph_dict[from_vertex.value].add_edge(to_vertex.value, weight)

1 Ответ

0 голосов
/ 30 мая 2020

Не знаю, с чем у вас проблемы, но вы можете написать это в две строки

#get some vertex from ditcionary
some_vertex = self.graph_dict[from_vertex.value] 

#and add new edge to this vertex 
some_vertex.add_edge(to_vertex.value, weight) 
...