# MultiGraph.remove_edges_from#

MultiGraph.remove_edges_from(ebunch)[source]#

Remove all edges specified in ebunch.

Parameters:
ebunch: list or container of edge tuples

Each edge given in the list or container will be removed from the graph. The edges can be:

• 2-tuples (u, v) A single edge between u and v is removed.

• 3-tuples (u, v, key) The edge identified by key is removed.

• 4-tuples (u, v, key, data) where data is ignored.

`remove_edge`

remove a single edge

Notes

Will fail silently if an edge in ebunch is not in the graph.

Examples

```>>> G = nx.path_graph(4)  # or DiGraph, MultiGraph, MultiDiGraph, etc
>>> ebunch = [(1, 2), (2, 3)]
>>> G.remove_edges_from(ebunch)
```

Removing multiple copies of edges

```>>> G = nx.MultiGraph()
>>> keys = G.add_edges_from([(1, 2), (1, 2), (1, 2)])
>>> G.remove_edges_from([(1, 2), (2, 1)])  # edges aren't directed
>>> list(G.edges())
[(1, 2)]
>>> G.remove_edges_from([(1, 2), (1, 2)])  # silently ignore extra copy
>>> list(G.edges)  # now empty graph
[]
```

When the edge is a 2-tuple `(u, v)` but there are multiple edges between u and v in the graph, the most recent edge (in terms of insertion order) is removed.

```>>> G = nx.MultiGraph()
>>> for key in ("x", "y", "a"):
...     k = G.add_edge(0, 1, key=key)
>>> G.edges(keys=True)
MultiEdgeView([(0, 1, 'x'), (0, 1, 'y'), (0, 1, 'a')])
>>> G.remove_edges_from([(0, 1)])
>>> G.edges(keys=True)
MultiEdgeView([(0, 1, 'x'), (0, 1, 'y')])
```