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]