все Python 3heapqфункция
heapq.merge()
слияние
Сливает несколько уже отсортированных последовательностей в один отсортированный ленивый итератор, не загружая всё в память.
Синтаксис
heapq.merge(*iterables, key=None, reverse=False) -> iterator
Входы обязаны быть отсортированы заранее, и это не проверяется: на неотсортированных данных merge молча вернёт неупорядоченный результат. Возвращает итератор, а не список — его можно пройти один раз. С reverse=True каждый вход должен быть отсортирован по убыванию. Если данные помещаются в память, sorted(a + b) проще и не хуже.
Примеры
import heapq
print(list(heapq.merge([1, 4, 7], [2, 5, 8], [3, 6]))) # → [1, 2, 3, 4, 5, 6, 7, 8]
import heapq
print(list(heapq.merge([3, 1, 2], [0]))) # → [0, 3, 1, 2] — вход не отсортирован, ошибки нет
import heapq
words = heapq.merge(['ccc', 'a'], ['bb'], key=len, reverse=True)
print(list(words)) # → ['ccc', 'bb', 'a']
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности