merge_iterators#
- openstef_core.utils.itertools.merge_iterators(it1: Iterator, it2: Iterator, compare: Callable[[T, T], int]) Iterator[source]#
Yield items from two sorted iterators in order defined by compare(a, b).
- Parameters:
- Yields:
Items from both iterators in sorted order according to compare function
Example
>>> def int_compare(a: int, b: int) -> int: ... return a - b >>> list1 = [1, 3, 5] >>> list2 = [2, 4, 6] >>> list(merge_iterators(iter(list1), iter(list2), int_compare)) [1, 2, 3, 4, 5, 6]
>>> # Reverse order comparison >>> def reverse_compare(a: int, b: int) -> int: ... return b - a >>> list3 = [5, 3, 1] # sorted in descending order >>> list4 = [6, 4, 2] # sorted in descending order >>> list(merge_iterators(iter(list3), iter(list4), reverse_compare)) [6, 5, 4, 3, 2, 1]