I'm using a dictionary to represent a set of edges. I'm using the keys of the dictionary to represent edges and the values to represent the weights. The dictionary currently looks like this:
{(0, 1): 2, (1, 2): 6, (0, 2): 3}
I try this:
edges, weights = [], []
for edge, weight in dict_edges.items():
edges += [edge]
weights.append(weight)
g.add_edges(edges)
g.es["weight"] = weights
But, I don't if there is a faster way or more cleaner to do this.
Anyone have any suggestions how to improve my new?
What you do is perfectly fine; maybe the for
loop could be replaced with a zip
call. If you are using Python 2.x::
from itertools import izip
edges, weights = izip(*dict_edges.iteritems())
g = Graph(edges, edge_attrs={"weight": weights})
If you are using Python 3.x::
edges, weights = zip(*dict_edges.items())
g = Graph(edges, edge_attrs={"weight": weights})