問題 例如 a = [1,7,7,4,4,5,6]
經過排序後是a=[1,7,4,5,6,7,4]
也就是說重複的元素在隊列後面插入,不改變原理的順序。最直觀的思路就是用一個列表記錄元素,如果有重複用另一個列表保存。
def get_reset_index(arr): no_repeat_list = [] index_list_1 = [] index_list_2 = [] for index, i in enumerate(arr): if i not in no_repeat_list: no_repeat_list.append(i) index_list_1.append(index) else: index_list_2.append(index) # result = no_repeat_list+repeat_list reset_index = index_list_1 + index_list_2 return reset_index
上面的函數是保存原數組的序號。
有何作用?用在pandas自定義排序
參考pandas的DataFrame如何按指定list排序