列表排序(适用于各种列表)

def sort(lt,reverse = False,key = None):
n = len(lt)
for i in range(n - 1):
for j in range(i + 1,n):
# if reverse:
# is_swap = lt[i] < lt[j]
# else:
# is_swap = lt[i] > lt[j]
# 优化后
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,2,4,6]
sort(lt,reverse=True)
print(lt)
原文地址:https://www.cnblogs.com/jiangtao159/p/9768906.html