python中編寫氣泡排序函式,可以排序任意型別的元素,可以逆序
阿新 • • 發佈:2018-12-31
1.實現氣泡排序演算法2.可以排序任意型別的元素
3.能夠通過引數設定進行逆序,預設升序
用for in 遍歷元素和if else處理。直接排序,根據鍵排序兩種情況,各自又分為升序和降序兩種情況排序。
def list_sort(lt, key=None, reverse=False): n = len(lt) for i in range(n-1): for j in range(n-i-1): if key: if reverse: if key(lt[j]) < key(lt[j + 1]): lt[j], lt[j + 1] = lt[j + 1], lt[j] else: if key(lt[j]) > key(lt[j + 1]): lt[j], lt[j + 1] = lt[j + 1], lt[j] else: if reverse: if lt[j] < lt[j+1]: lt[j], lt[j+1] = lt[j+1], lt[j] else: iflt[j] > lt[j + 1]: lt[j], lt[j + 1] = lt[j + 1], lt[j] return lt
lt = [ {'name': 'xiaoming', 'age': 18}, {'name': 'xiaoming', 'age': 15}, {'name': 'xiaoming', 'age': 16}, {'name': 'xiaoming', 'age': 17} ] print(list_sort(lt, key=lambda d: d['age'], reverse=False))
結果:[{'name': 'xiaoming', 'age': 15}, {'name': 'xiaoming', 'age': 16}, {'name': 'xiaoming', 'age': 17}, {'name': 'xiaoming', 'age': 18}]