① 合并到新队列
代码:
In [1]: def merge(lsta, lstb):
...: merged = []
...: while lsta and lstb:
...: if lsta[0] < lstb[0]:
...: merged.append(lsta.pop(0))
...: else:
...: merged.append(lstb.pop(0))
...: return merged + lsta + lstb
...:
In [2]: merge([3,5,8,9,14], [2,3,7,9,15,17])
Out[2]: [2, 3, 3, 5, 7, 8, 9, 9, 14, 15, 17]
② 将一个列表合并到另一个列表
遍历列表1中的数据,将其全部插入列表2的正确位置即可。
In [8]: def merge_to(lsta, lstb):
...: def insert(n, tar):
...: idx = 0
...: while idx < len(lstb) and n > tar[idx]:
...: idx += 1
...: tar.insert(idx, n)
...: for num in lsta:
...: insert(num, lstb)
In [9]: lst = [2,3,7,9,15,17]
In [10]: merge_to([3,5,8,9,14], lst)
In [11]: lst
Out[11]: [2, 3, 3, 5, 7, 8, 9, 9, 14, 15, 17]