1. 程式人生 > >python實現合併兩個有序列表

python實現合併兩個有序列表

def hebing(list1,list2):
    result=[]
    while list1 and list2:
        if list1[0]<list2[0]:
            result.append(list1[0])
            del list1[0]
        else:
            result.append(list2[0])
            del list2[0]
    if list1:
        result.extend(list1)
    if list2:
        result.extend(list2)
    print
(result) return result if __name__ == '__main__': list1=[3,4,7,9,11] list2=[1,2,5,8,13,20] hebing(list1,list2)
PS:(1)合併兩個有序列表,時間複雜度是O(n)

          (2)注意append和extend的區別:

                list.append(object)是向列表中新增一個物件object;list.extend(sequence)把一個序列sequence的內容新增到列表中 eg:

    a=[1,2,3]
    b=[4
,5] a.append(b) 將b看作一個物件,整體打包新增到a中 print(a) [1, 2, 3, [4, 5]]
   a=[1,2,3]
   b=[4,5]
   a.extend(b) 將b中的每一項內容新增到a中
   print(a)    [1, 2, 3, 4, 5]