我被要求将排序列表列表合并到一个排序列表中,使用一个列表,该列表包含要在最终输出列表旁边移动的所有候选项。我写了这段代码,我得到索引错误。任何人都可以帮忙!
import copy
def getNext(lst, index):
if len(lst)< index+1:
return None
else:
return lst[index]
def multi_merge_v2(lst_of_lsts):
myLst= copy.copy(lst_of_lsts)
candidates=[]
for lst in myLst:
if lst!=[]:
candidates.append(lst[0])
indexes= [0]*len(candidates)
merged=[]
while candidates !=[]:
Min = min(candidates)
merged += [Min]
index = indexes[candidates.index(Min)]
indexes[index]+=1
nextCan = getNext(myLst[index], indexes[index])
if nextCan == None:
myLst.remove(myLst[index])
candidates.remove(Min)
indexes.remove(indexes[index])
else:
candidates[index]=nextCan
return merged
答案 0 :(得分:0)
这个怎么样:
merged = lst_of_lsts[-1]
for lst in lst_of_lsts[0:-1]:
merged += lst
merged.sort()