问题 例如 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排序