如何对列表清单的字典排序?

时间:2019-06-16 11:15:49

标签: python sorting dictionary

我正在学习Python并做一些小项目。我陷入了一个问题。我想通过使用列表中的max项目对列表列表的字典进行排序,并打印出排序后的字典。但是结果却不如预期。这是代码:

b = {'Item 1': [('Job 7', 7.0, 3.0), ('Job 4', 4.0, 5.0), ('Job 1', 3.0, 6.0)], 'Item 2': [('Job 11', 6.0, 4.0), ('Job 8', 4.0, 7.0), ('Job 9', 3.0, 2.0), ('Job 12', 2.0, 1.0)], 'Item 3': [('Job 2', 5.0, 1.0), ('Job 14', 4.0, 3.0), ('Job 3', 2.0, 3.0), ('Job 5', 1.0, 2.0)], 'Item 4': [('Job 13', 5.0, 2.0), ('Job 15', 4.0, 6.0), ('Job 6', 2.0, 4.0), ('Job 10', 1.0, 4.0)]}
def max_value(inputdict):
    for i in range(len(inputdict)):
        max([sublist[1] for sublist in inputdict[f"Batch {i + 1}"]])
a = sorted(b, key = max_value(b), reverse = True)
print(a)

我期望的是

a = {'Item 4': [('Job 13', 5.0, 2.0), ('Job 15', 4.0, 6.0), ('Job 6', 2.0, 4.0), ('Job 10', 1.0, 4.0)], 'Item 3': [('Job 2', 5.0, 1.0), ('Job 14', 4.0, 3.0), ('Job 3', 2.0, 3.0), ('Job 5', 1.0, 2.0)], 'Item 2': [('Job 11', 6.0, 4.0), ('Job 8', 4.0, 7.0), ('Job 9', 3.0, 2.0), ('Job 12', 2.0, 1.0)], 'Item 1': [('Job 7', 7.0, 3.0), ('Job 4', 4.0, 5.0), ('Job 1', 3.0, 6.0)]}

但是,结果只是一个键列表:

['Item 4', 'Item 3', 'Item 2', 'Item 1']

0 个答案:

没有答案