Über TypeError: 1 erforderliches Positionsargument in Python fehlt
仅有的幸福
仅有的幸福 2017-06-14 10:51:00
0
1
2485

Ich habe angefangen, Python zu lernen und habe mir den Teil über Datenstrukturen zu Diagrammen angesehen. Dies dient dazu, die Tiefendurchquerung und die Breitendurchquerung eines Diagramms zu implementieren, aber am Ende ist es g.add_nodes([i+1 für i in range(10)]) TypeError: add_nodes() fehlt 1 erforderliches Positionsargument: „nodelist“ wird angezeigt. Ich habe keine Ahnung, wie ich das Problem lösen kann.

Das ist mein Programm

Klassendiagramm (Objekt):

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

if name == '__main__':

g = Graph()

g.add_nodes([i+1 für 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. Depth_first_search(1)

仅有的幸福
仅有的幸福

Antworte allen(1)
学习ing
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()需要参数,具体要什么看你自己了.

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!