remove

iteration_utilities.remove(iterable, idx=None, start=None, stop=None)

Removes the item at idx or from start (inclusive) to stop (exclusive).

Parameters:

iterable : iterable

The iterable in which to remove the item(s).

idx : positive int, list/tuple thereof, None, optional

If not None, remove the item at idx. If it’s a tuple or list then replace all the present indices (they will be sorted so only the specified indices are removed). Default is None.

Note

This parameter must not be None if also start and stop are None.

start : positive int or None, optional

If None then remove all items before stop, otherwise remove only the items starting by start. Default is None.

Note

This parameter is ignored if idx is not None.

stop : positive int or None, optional

If None then remove all items starting by start, otherwise only remove the items before stop. Default is None.

Note

This parameter is ignored if idx is not None.

Returns:

replaced : generator

The iterable with the specified items removed.

Examples

To remove one item:

>>> from iteration_utilities import remove
>>> list(remove(range(10), idx=2))
[0, 1, 3, 4, 5, 6, 7, 8, 9]

To remove several items just provide a tuple as idx (the values are sorted, so exactly the specified elements are removed):

>>> list(remove(range(10), (4, 6, 8, 5, 1)))
[0, 2, 3, 7, 9]

To remove a slice:

>>> list(remove(range(10), start=2))
[0, 1]

>>> list(remove(range(10), stop=2))
[2, 3, 4, 5, 6, 7, 8, 9]

>>> list(remove(range(10), start=2, stop=5))
[0, 1, 5, 6, 7, 8, 9]