Maison  >  Questions et réponses  >  le corps du texte

À propos de TypeError : il manque 1 argument de position requis en Python

J'ai commencé à apprendre Python et je regardais la partie sur les structures de données sur les graphiques. Il s'agit d'implémenter le parcours en profondeur et en largeur d'un graphique, mais au final, c'est g.add_nodes([i+1 pour i in range(10)]) TypeError : add_nodes() manquant 1 argument de position requis : 'nodelist' sera affiché. Je n'ai aucune idée de comment le résoudre. Quelqu'un peut-il me donner des conseils ?

C'est mon programme

Graphique de classe (objet):

def __init__(self, *args, **kwargs):
    self.node_neighbors = {}
    self.visited = {}

def add_nodes(self,nodelist):
    for node in nodelist:
        self.add_node(node)

def add_node(self,node):
    if node not in self.add_nodes():
        self.node_neighbors[node] = []

def add_edge(self,edge):
    u, v = edge
    if(v not in self.node_neighbors[u]) and (u not in self.node_neighbors[v]):
        self.node_neighbors[u].append(u)
        if(u!=v):
            self.node_neighbors[v].append(u)

def nodes(self):
    return self.node_neighbors.keys()

def depth_first_search(self, root=None):
    order = []
    def dfs(node):
        self.visited[node] = True
        order.append(node)
        for  n in self.node_neighbors[node]:
            if not n in self.visited:
                dfs(n)
    if root:
        dfs(root)
    for node in self.nodes():
        if not node in self.visited:
            dfs(node)
    print(order)
    return order

def breadtg_frist_search(self, root = None):
    queue = []
    order = []
    def bfs():
        while len(queue) >  0:
            node = queue.pop()
            self.visited[node] = True
            for n in self.node_neighbors[node]:
                if (not n in self.visited) and (not n in queue):
                    queue.append(n)
                    order.append(n)
    if root:
        queue.append(root)
        order.append(root)
        bfs()
    for node in self.nodes():
        if not node in self.visited:
            queue.append(node)
            order.append(node)
            bfs()
    print(order)
    return order

si nom == '__main__':

g = Graph()

g.add_nodes([i+1 pour i in range(10)])
g.add_edge((1, 2))
g.add_edge((1, 3))
g.add_edge((2, 4) )
g.add_edge((2, 5))
g.add_edge((4, 8))
g.add_edge((5, 8))
g.add_edge((5, 9))
g.add_edge( (3, 6))
g.add_edge((3, 7))
g.add_edge((7, 10))
g.add_edge((9, 10))
print('nodes:' + g.nodes ())
order = g.breadtg_frist_search(1)
order = g.third_first_search(1)

仅有的幸福仅有的幸福2658 Il y a quelques jours2493

répondre à tous(1)je répondrai

  • 学习ing

    学习ing2017-06-14 10:53:00

    def add_node(self,node):
        if node not in self.add_nodes():
            self.node_neighbors[node] = []
    

    if node not in self.add_nodes():中的add_nodes()Nécessite des paramètres, c'est à vous de décider ce dont vous avez besoin.

    répondre
    0
  • Annulerrépondre