blade.xreduce¶
blade reduction operations
- blade.xreduce.xflatten(iterable)¶
Reduce nested items in iterable to flattened items in iterable.
Parameters: iterable – iterable >>> from blade.xreduce import xflatten >>> list(xflatten([[1, [2], [3, [[4]]]], 'here'])) [1, 2, 3, 4, 'here']
- blade.xreduce.xreduce(iterable, callable, initial=None, invert=False)¶
Reduce iterable items in iterable down to one items in iterable using callable.
Parameters: - callable – reducing callable
- iterable – iterable
- initial – starting value
- invert (bool) – reduce from the right side of items in iterable
>>> from blade.xreduce import xreduce >>> # reduce from left side >>> xreduce([1, 2, 3], lambda x, y: x + y) 6 >>> # reduce from left side with initial value >>> xreduce([1, 2, 3], lambda x, y: x + y, initial=1) 7 >>> # reduce from right side >>> xreduce([[0, 1], [2, 3], [4, 5]], lambda x, y: x + y, invert=True) [4, 5, 2, 3, 0, 1] >>> # reduce from right side with initial value >>> xreduce( ... [[0, 1], [2, 3], [4, 5]], lambda x, y: x + y, [0, 0], invert=True ... ) [4, 5, 2, 3, 0, 1, 0, 0]