2017-04-02 11 views
0

Ich habe eine Funktion geschrieben und ich versuche, es einige Male aufzurufen, aber es gibt mir einen Fehler zurück.Python: Fehler bei der Verwendung der Rekursion

# create a graph with all active nodes 

G = nx.erdos_renyi_graph(100, 0.05) 
pos = nx.spring_layout(G) 
G.add_nodes_from(G.nodes(), color='blue') 
nx.draw_networkx_nodes(G, pos, G.nodes(), node_size=20, node_color='b') 
nx.draw_networkx_edges(G, pos, alpha=0.3) 

def step(G, x, y): 
color = nx.get_node_attributes(G, 'color') 
for (key, value) in zip(color, color.values()): 
    if value == 'blue': 
     neighbours = G.neighbors(key) 
     inactive_neighbours = [] 
     for n in neighbours: 
      if color[n] == 'red': 
       inactive_neighbours.append(n) 
       if inactive_neighbours: 
        chosen_neighbour = random.sample(neighbours, 1) 
        if np.random.random() < x/(x + y): 
         activate = [] 
         activate.append(chosen_neighbour) 
         G.add_nodes_from(activate, color='blue') 

     if np.random.random() < y/(x + y): 
      deactivate = [] 
      deactivate.append(key) 
      G.add_nodes_from(deactivate, color='red') 

print(nx.get_node_attributes(G, 'color')) 
i = 3 
while 2 < i < 100: 
    step(G, 0.5, 1) 
    i += 1 

step(G, 0.5, 1) 

Und es gibt mir eine Fehlermeldung ValueError: not enough values to unpack (expected 2, got 1). Was mache ich falsch? Wie kann ich aufrufen, um es einige Zeit auszuführen?

+2

Können Sie den kompletten Stack-Trace angeben? Nicht in der Lage herauszufinden, welche Zeile diesen Fehler verursacht hat. – Afaq

+0

Ich würde mir ansehen was genau 'zip (color, color.values ​​())' gibt. Ich vermute, dass diese Linie der Schuldige ist. – karlson

+0

@Afaq alles Code, aber ohne Import-Bibliotheken –

Antwort

0

Es gibt kein Problem in recursion.just lesen Sie den Stapel trace.your ValueError: not enough values to unpack (expected 2, got 1) Ihnen bereits sagen, dass Sie dies nicht tun können a,b = [1] .search etwas über packen und entpacken in Python.

Verwandte Themen