按特定字典键对字典列表进行排序
这个问题在这里已经有了答案:
您可以使用key
参数sorted
。
array = sorted(array,key= lambda x: x['d'])
由于您必须使用自己的排序代码,因此本网站上的大多数答案都无法帮助您 - 它们通常基于Python附带的sort
或sorted
函数。
您可以使用您已有的任何排序功能的轻微变体对这些字典进行排序。 无论您的旧代码如何比较两个项目,如:
if a < b:
# swap a and b
...您会改为比较这些项目中包含的值:
attribute = 'Race Time'
if a[attribute] < b[attribute]:
# swap a and b
请注意,您的“比赛时间”实际上是一些奇怪格式的字符串,需要将工作转换为可比较的数字。 这可能值得作为一个单独的函数来编写,你的排序函数将在完全相同的地方使用:
if race_time(a) < race_time(b):
...
...甚至:
if is_faster(a, b):
...
对于更一般的解决方案,查找大多数语言用于通用排序的比较函数和关键函数 ,这是在现代版本的Python中使用的更高效的变体。 (SuperBiasedMan在评论中提到,“如何通过Python中的字典值对字典列表进行排序?”有很多使用关键函数的例子。)
链接地址: http://www.djcxy.com/p/70777.html上一篇: Sorting a list of dictionaries by a specific dictionary key