pythonは2つの並べ替えられたリストを1つの並べ替えられたリストに統合することを実現する


 :  1
#                    
def merge_list(a,b):
    if not a:
        return b
    if not b:
        return a
    a_index = b_index = 0
    ret = list()
    while a_index < len(a) and b_index < len(b):
        if a[a_index] <= b[b_index]:
            ret.append(a[a_index])
            a_index += 1
        else:
            ret.append(b[b_index])
            b_index += 1
    if a_index < len(a):
        ret.extend(a[a_index:])
    if b_index < len(b):
        ret.extend(b[b_index:])
    return ret
if __name__ == "__main__":

    #     
    lt1 = [1,8,12,13]
    lt2 = [5,8,17,28]
    lt3 = [1,90,98,99,100]
    res = merge_list(lt1,lt2)
    res1 = merge_list(res,lt3)
    print(res)
    print(res1)

###################################結果
[1, 5, 8, 8, 12, 13, 17, 28] [1, 1, 5, 8, 8, 12, 13, 17, 28, 90, 98, 99, 100]
 
複数のソート対象リストの場合、reduce()関数を使用してメソッド2を使用するとよい.
二:方法2
from functools import reduce
lts = list()
lts.append(lt1)
lts.append(lt2)
lts.append(lt3)
res2 = reduce(merge_list,lts)
print(res2)