将列表列表合并到一个列表python中

时间:2014-04-04 09:15:25

标签: python list indexing sorted

我被要求将排序列表列表合并到一个排序列表中,使用一个列表,该列表包含要在最终输出列表旁边移动的所有候选项。我写了这段代码,我得到索引错误。任何人都可以帮忙!

    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

1 个答案:

答案 0 :(得分:0)

这个怎么样:

merged = lst_of_lsts[-1]
for lst in lst_of_lsts[0:-1]:
    merged += lst
merged.sort()