假设我想对一个看起来像这样的列表进行排序:arr = ['45621', '78124', '24613']上面的列表存储了公司不同员工的 ID。我不想仅根据 ID 进行排序,而是根据与 ID 对应的属性,使用以下字典进行排序:d = { '45621' : { 'rating' : 3, 'hours_worked' : 42 }, '78124' : { 'rating' : 4, 'hours_worked' : 78 }, '24613' : { 'rating' : 3, 'hours_worked' : 51 }}所以它是这样的:如果员工有更高的rating,他/她的 ID 将排在第一位。但是,如果 2 个员工有相同的rating,那么我们比较hours_worked,谁工作的多谁先。我想自己实现一个插入排序。现在,我的代码如下所示:def insertionSort(arr): for i in range(1, len(arr)): key = d[arr[i]]['rating'] second_key = d[arr[i]]['hours_worked'] j = i - 1 while j >= 0 and key < d[arr[j]]['rating']: arr[j+1] = arr[j] j -= 1 d[arr[j+1]]['rating'] = key return arr我似乎无法使用第二个键进行比较。而且,这根本行不通。有什么帮助吗?请注意,我无法更改输入和字典的性质,并且请不要使用内置方法进行回答。
添加回答
举报
0/150
提交
取消