我正在学习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']