MultiDiGraph.add_weighted_edges_from#
- MultiDiGraph.add_weighted_edges_from(ebunch_to_add, weight='weight', **attr)#
Add weighted edges in
ebunch_to_add
with specified weight attr- Parameters:
- ebunch_to_addcontainer of edges
Each edge given in the list or container will be added to the graph. The edges must be given as 3-tuples (u, v, w) where w is a number.
- weightstring, optional (default= ‘weight’)
The attribute name for the edge weights to be added.
- attrkeyword arguments, optional (default= no attributes)
Edge attributes to add/update for all edges.
See also
add_edge
add a single edge
add_edges_from
add multiple edges
Notes
Adding the same edge twice for Graph/DiGraph simply updates the edge data. For MultiGraph/MultiDiGraph, duplicate edges are stored.
When adding edges from an iterator over the graph you are changing, a
RuntimeError
can be raised with message:RuntimeError: dictionary changed size during iteration
. This happens when the graph’s underlying dictionary is modified during iteration. To avoid this error, evaluate the iterator into a separate object, e.g. by usinglist(iterator_of_edges)
, and pass this object toG.add_weighted_edges_from
.Examples
>>> G = nx.Graph() # or DiGraph, MultiGraph, MultiDiGraph, etc >>> G.add_weighted_edges_from([(0, 1, 3.0), (1, 2, 7.5)])
Evaluate an iterator over edges before passing it
>>> G = nx.Graph([(1, 2), (2, 3), (3, 4)]) >>> weight = 0.1 >>> # Grow graph by one new node, adding edges to all existing nodes. >>> # wrong way - will raise RuntimeError >>> # G.add_weighted_edges_from(((5, n, weight) for n in G.nodes)) >>> # correct way - note that there will be no self-edge for node 5 >>> G.add_weighted_edges_from(list((5, n, weight) for n in G.nodes))