Если вы можете использовать кучу…
импортировать кучу
из кучиq импортировать heappush, heappop
деф слияние (списки):
....слитный_список = []
....heap = [(lst[0],i,0) for i, lst in enumerate(lists) if lists]
....heapq.heapify(heap)
....в то время как куча:
….….val, list_ind, element_ind = heappop(heap)
……..merged_list.append(val)
……..next_element_id = element_ind + 1
……..if next_element_id ‹ len(lists[list_ind]):
…………next_tuple = (lists[list_ind][next_element_id],
…………….list_ind,
…………….next_element_id)
…………heappush(куча, next_tuple)
….вернуть слитный_список