python之自定義排序函數sorted()
阿新 • • 發佈:2019-01-12
col pytho 程序 定義排序 pre 兩個 cti tools ted 函數。將老式的比較函數(comparison function)轉化為關鍵字函數(key function)。與接受key function的工具一同使用(如 sorted(), min(), max(), heapq.nlargest(), itertools.groupby())。該函數主要用來將程序轉成 Python 3 格式的,因為 Python 3 中不支持比較函數。
sorted()也是一個高階函數,它可以接收一個比較函數來實現自定義排序,比較函數的定義是,傳入兩個待比較的元素 x, y,如果 x 應該排在 y 的前面,返回 -1,如果 x 應該排在 y 的後面,返回 1。如果 x 和 y 相等,返回 0。
def custom_sort(x,y): if x>y: return -1 if x<y: return 1 return 0 print sorted([2,4,5,7,3],custom_sort)
在python3以後,sort方法和sorted函數中的cmp參數被取消,此時如果還需要使用自定義的比較函數,那麽可以使用cmp_to_key
def custom_sorted(x,y): if x>y: return -1 if x<y: return 1 return 0 print(sorted([2,3,1,5,4],key=cmp_to_key(custom_sorted)))
python之自定義排序函數sorted()