按多个值对dict列表排序

2024-04-25 18:52:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面这句话

tempdata = {'logs': [
    {'starttime':'901',
     'time':'5'
     },
    {'starttime':'902',
     'time':'3'
     },
    {'starttime':'900',
     'time':'2'
     },    
    {'starttime':'901',
     'time':'2'
     },
    {'starttime':'905',
     'time':'1'
     },
    {'starttime':'904',
     'time':'1'
     }
]
}

我想主要按starttime排序。我做得很好:

^{pr2}$

但现在,我也要按时间来分类。在

预期输出:

tempdata = {'logs': [
    {'starttime':'900',
    'time':'2'
    },
    {'starttime':'901',
     'time':'2'
     },
    {'starttime':'901',
     'time':'5'
     },
    {'starttime':'902',
     'time':'3'
     },
    {'starttime':'904',
     'time':'1'
     },
    {'starttime':'905',
     'time':'1'
     }
]
}

我怎样才能完成这项任务?我已查找sorted(),但找不到我要查找的内容。在


Tags: 内容time排序时间分类logssortedstarttime
1条回答
网友
1楼 · 发布于 2024-04-25 18:52:21

使用元组作为键对它们进行排序,如下所示:

tempdata['logs'] = sorted(tempdata['logs'],
                          key=lambda k: (k['starttime'], k['time']))

元组按顺序由每个元素进行比较。在

顺便说一句,这种方法将值作为字符串进行比较,而不是作为数字。不知道这是否与你有关。在

相关问题 更多 >