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

这个问题在这里已经有了答案:

  • 如何根据Python中字典的值对字典列表进行排序? 17个答案

  • 您可以使用key参数sorted

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

    由于您必须使用自己的排序代码,因此本网站上的大多数答案都无法帮助您 - 它们通常基于Python附带的sortsorted函数。

    您可以使用您已有的任何排序功能的轻微变体对这些字典进行排序。 无论您的旧代码如何比较两个项目,如:

    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

    下一篇: Sort by list in list in python?