python實現合併兩個有序列表
阿新 • • 發佈:2019-02-08
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]