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

合併兩個有序列表

方法一:思路應該都比較清晰,就是依次對比兩個列表元素的大小,然後把小的加入一個新的列表中,刪除小的元素,對比

a = [1,3,5,8,9]
b = [2,4,6]

def sort1(a,b):
    c = []
    if len(a) == 0 :
        c.extend(b)
        return c
    elif len(b) == 0:
        c.extend(a)
        return c
    else:
        if a[0] < b[0]:
            c.append(a[0])
            del
a[0] else: c.append(b[0]) del b[0] c += sort1(a, b) return c sort1(a,b)

python內建方法,解決這種合併問題

a = [1,3,5,8,9]
b = [2,4,6]
c = a+ b
c.sort()
c

和第一種一樣,但是寫法有一丟丟不一樣,供大家學習

#!/usr/bin/python
# -*- coding: utf-8 -*-
list1 = [3, 7, 8, 9, 12]
list2 = [5, 6, 10, 13, 25, 30
] result = [] while list1 and list2: if list1[0] < list2[0]: result.append(list1[0]) list1.remove(list1[0]) else: result.append(list2[0]) list2.remove(list2[0]) #list1元素已全部新增到result,此時只需將剩餘的元素新增到resultfor i in list2: result.append(i) print(result)