为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用2个条件属性使用插入排序对python列表进行排序?

如何使用2个条件属性使用插入排序对python列表进行排序?

慕标5832272 2021-07-14 17:14:12
假设我想对一个看起来像这样的列表进行排序: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我似乎无法使用第二个键进行比较。而且,这根本行不通。有什么帮助吗?请注意,我无法更改输入和字典的性质,并且请不要使用内置方法进行回答。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信