def sort(lt, key=None, reverse=False): n = len(lt) for i in range(n-1): for j in range(i+1, n): # 确定是否交换的标志位 if key: is_swap = (key(lt[i]) < key(lt[j])) if reverse else (key(lt[i]) > key(lt[j])) else: is_swap = (lt[i] < lt[j]) if reverse else (lt[i] > lt[j]) # 交换 if is_swap: lt[i], lt[j] = lt[j], lt[i] ''' if reverse: if key: if key(lt[i]) < key(lt[j]): lt[i], lt[j] = lt[j], lt[i] else: if lt[i] < lt[j]: lt[i], lt[j] = lt[j], lt[i] else: if key: if key(lt[i]) > key(lt[j]): lt[i], lt[j] = lt[j], lt[i] else: if lt[i] > lt[j]: lt[i], lt[j] = lt[j], lt[i] ''' # lt = [1, 3, 5, 7, 2, 4, 6] lt = [ {'name': 'xiaofang', 'age': 20, 'height': 160}, {'name': 'xiaomin', 'age': 23, 'height': 158}, {'name': 'xiaodu', 'age': 21, 'height': 165}, {'name': 'xiaowang', 'age': 24, 'height': 170}, ] sort(lt, key=lambda x: x['height'], reverse=True) # lt.sort() for i in lt: print(i)
#自己实现列表的sort函数,支持逆序,可以排序任意类型的数据。
最新推荐文章于 2023-10-16 19:29:56 发布