Python 按特定字典键对字典列表进行排序

Python 按特定字典键对字典列表进行排序,python,sorting,dictionary,Python,Sorting,Dictionary,我有一系列字典: LeaderBoard = [{'Driver':'Sebastian Williams', 'Car':1, 'Team':'Red Drink','Grid':2, 'Fastest Lap':'1:37.481','Race Time':'2:27:45.958','Points':10}, {'Driver':'Tom Hamilton' ,'Car':44 ,'Team':'Mercidas' ,'Grid':6 ,'Fastes

我有一系列字典:

LeaderBoard = [{'Driver':'Sebastian Williams', 'Car':1, 'Team':'Red Drink','Grid':2, 'Fastest Lap':'1:37.481','Race Time':'2:27:45.958','Points':10},
                   {'Driver':'Tom Hamilton' ,'Car':44 ,'Team':'Mercidas' ,'Grid':6 ,'Fastest Lap':'1:37.176' ,'Race Time':'2:26:52.094' ,'Points':25 },
                   {'Driver':'Danny Ricardo' ,'Car':3 ,'Team':'Red Drink' ,'Grid':8 ,'Fastest Lap':'1:38.459' ,'Race Time':'2:27:38.589' ,'Points':15 },
                   {'Driver':'Walter Borras' ,'Car':77 ,'Team':'Lewis' ,'Grid':14 ,'Fastest Lap':'1:38.264' ,'Race Time':'2:27:22.229' ,'Points':18 },
                   {'Driver':'Fernando Sonal' ,'Car':14 ,'Team':'Farrori' ,'Grid':16 ,'Fastest Lap':'1:38.587' ,'Race Time':'2:27:52.040' ,'Points':8 },
                   {'Driver':'Jeson Smith' ,'Car':22 ,'Team':'McMilan' ,'Grid':3 ,'Fastest Lap':'1:38.284' ,'Race Time':'2:27:39.484' ,'Points':12},]
我如何按照最快的“比赛时间”对它们进行排序

我已经尝试了我能想到的一切。我使用了
replace
split
使比赛时间成为我可以轻松比较的单个数字,但我无法使循环正常工作

这是家庭作业,我们需要使用我们所学的排序算法。不允许使用Python的
排序
排序


没有其他限制---任何对字典数组进行排序的方法都可以。

您可以使用
参数进行排序

array = sorted(array,key= lambda x: x['d'])

由于您必须使用自己的排序代码,本网站上的大多数答案对您没有帮助——它们通常基于Python附带的
sort
sorted
函数

您可以使用已有的排序函数的一个微小变体对这些词典进行排序。无论您的旧代码在何处比较以下两项:

if a < b:
    # swap a and b

要获得更通用的解决方案,请查找大多数语言用于通用排序的比较函数,以及关键函数,后者是Python现代版本中使用的一种更有效的变体。(“”,SuperBiasedMan在评论中提到,有许多使用关键函数的示例。)

使用
array[0]['d']>array[1]['d'].
Hi,阅读了解有关在SO中提问的更多信息。您希望输出是什么?字典不是有序的数据结构,因此对其内容进行排序毫无意义。可能是每个唯一密钥的列表?还有什么?请你的问题包括老师对这项作业的所有限制。在评论中玩“猜规格”对任何人都没有乐趣。这是不允许的。这是为了学校作业,我们需要使用我们学过的排序算法。好吧,那样的话,我想你必须自己解决它。。。
attribute = 'Race Time'
if a[attribute] < b[attribute]:
    # swap a and b
if race_time(a) < race_time(b):
    ...
if is_faster(a, b):
    ...