-
mentpy.GraphState.add_weighted_edges_from(ebunch_to_add, weight=
'weight'
, **attr) Add weighted edges in ebunch_to_add with specified weight attr
- Parameters:¶
- ebunch_to_add : container 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.
- weight : string, optional (default= 'weight')¶
The attribute name for the edge weights to be added.
- attr : keyword 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 using list(iterator_of_edges), and pass this object to G.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))