【发布时间】:2017-02-28 09:14:45
【问题描述】:
我有一本列表字典,summary:
summary = {
'Raonic': [2, 0, 11, 122, 16, 139],
'Halep': [2, 2, 10, 75, 6, 60],
'Kerber': [2, 0, 7, 68, 7, 71],
'Wawrinka': [1, 2, 14, 133, 13, 128],
'Djokovic': [2, 2, 10, 75, 8, 125],
}
我希望在屏幕(标准输出)上打印出一个按排名降序排列的摘要,其中排名是按照标准 1-6 的顺序排列的(比较项目 1(列表中的),如果相等比较(列表中的)第 2 项,如果它们相等,请比较(列表中的)第 3 项。这种比较会一直持续到列表中的第 4 项,降序。
但是列表的第 5 项和第 6 项的比较必须按升序进行。
输出:
Halep 2 2 10 75 6 60
Djokovic 2 2 10 75 8 125
Raonic 2 0 11 122 16 139
Kerber 2 0 7 68 7 71
Wawrinka 1 2 14 133 13 128
我的解决方案是:
for key, value in sorted(summary.items(), key=lambda e: e[1][0], reverse = True):
print(key, end=' ')
for v in value:
print(v, end=' ')
print()
但是我的解决方案只是成功地对列表的第 1 列进行了排序。
【问题讨论】:
-
从链接来看,这看起来像是一个没有事先努力的家庭作业问题
-
这是一个任务,是的。除了如何使用多重比较对字典进行排序之外,我确实完成了所有工作。当我发布问题时,我还没有找到令人满意的答案。
标签: python sorting dictionary