grouper¶
- class iteration_utilities.grouper(iterable, n, fillvalue=None, truncate=False)¶
Collect data into fixed-length chunks or blocks.
- Parameters:
- iterableiterable
Any iterable to group.
- n
int
The number of elements in each chunk.
- fillvalueany type, optional
The fillvalue if the iterable is consumed and the last yielded group should be filled. If not given the last yielded group may be shorter than the group before. Using
fillvalue=None
is different from not giving a fillvalue in that the last group will be filled withNone
.- truncate
bool
, optional As alternative to fillvalue the last group is discarded if it is shorter than n and truncate is
True
. Default isFalse
.
- Returns:
- groupsgenerator
An iterable containing the groups/chunks as
tuple
.
- Raises:
- TypeError
If truncate is
True
and a fillvalue is given.
Examples
>>> from iteration_utilities import grouper
>>> list(grouper('ABCDEFG', 3)) [('A', 'B', 'C'), ('D', 'E', 'F'), ('G',)]
>>> list(grouper('ABCDEFG', 3, fillvalue='x')) [('A', 'B', 'C'), ('D', 'E', 'F'), ('G', 'x', 'x')]
>>> list(grouper('ABCDEFG', 3, truncate=True)) [('A', 'B', 'C'), ('D', 'E', 'F')]
- __length_hint__()¶
Tries to estimate for the length of the instance (returns
0
if an estimation is not possible).
- fillvalue¶
(any type) The fillvalue if the last group does not contain enough items (readonly).
New in version 0.6.