Python Glossary English

все 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Сообщить о неточности