Если вы можете использовать кучу…

импортировать кучу
из кучи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)

….вернуть слитный_список