Python Key Error=0 – Can’t find Dict error in code

Python Key Error=0 – Can’t find Dict error in code :

The error you’re getting is that self.adj doesn’t already have a key 0. You’re trying to append to a list that doesn’t exist yet.

Consider using a defaultdict instead, replacing this line (in __init__):

self.adj = {}

with this:

self.adj = defaultdict(list)

You’ll need to import at the top:

from collections import defaultdict

Now rather than raise a KeyErrorself.adj[0].append(edge) will create a list automatically to append to.


The defaultdict solution is better. But for completeness you could also check and create empty list before the append. Add the + lines:

+ if not u in self.adj.keys():
+     self.adj[u] = []
  self.adj[u].append(edge)
.
.

0

Try this:

class Flonetwork(Object):
    def __init__(self,adj = {},flow={}):
        self.adj = adj
        self.flow = flow

Leave a Comment