python - 对列表中的字典进行排序,以便按从最高到最低的顺序输出分数

标签 python list dictionary max

与上一个问题相关,我需要对列表中的字典进行排序。代码是:

dict1 = [{"Name":"Ron","one":3,"two":6,"three":10}
     ,{"Name":"Mac","one":5,"two":8,"three":0}
     ,{"Name":"DUDE","one":16,"two":9,"three":2}]

我想这样当我打印字典时,它会打印得分最高的人的名字,然后是得分第二高的人的名字,然后是得分第三高的人的名字等等。 该特定列表的预期输出是: DUDE 16 #as DUDE的最高分是16,16是最高分 Ron 10 #因为 Ron 的最高分是 10,但它是第二高分 Mac 8#因为Mac的最高分是8,但他的高分是他们三个中最低分的。

任何帮助将不胜感激。

最佳答案

类似这样的吗?:

print [(x["Name"] + " " + str(max(x["one"],x["two"],x["three"])) ) for x in sorted(dict1, key=lambda row: max(row["one"],row["two"],row["three"]),reverse=True )]

>>> ['DUDE 16', 'Ron 10', 'Mac 8']

这本质上使用所有三个值中的最大值作为排序键,并将它们反向放置。然后它在列表理解语句中打印出名称和最大值。

关于python - 对列表中的字典进行排序,以便按从最高到最低的顺序输出分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33368106/

相关文章:

c# - IEnumerable 上的 ToList() 如何工作?

c# - 从 C# List<object> 中获取重复项

python - 从 python 列表中选择最高值

Python 按值降序对嵌套字典进行排序

ios - 循环字典数组中的元素

python - 将包含矩阵对角线以下元素的列表转换为完整矩阵

python - ZODB 3 中的持久集

objective-c - 我可以更改 NSDictionary 的键吗?

python - 将 Python 对象传递给 C 模块

python - 是否可以将黑色网格线添加到 python Altair Heatmap 图中?