我有以下词典
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
排序。我完美地做了:
tempdata['logs'] = sorted(tempdata['logs'],key=lambda k: k['starttime'])
但是现在,我想按时间对它们进行排序。
预期输出:
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(),找不到我要找的东西。
答案 0 :(得分:2)
使用元组作为关键字对它们进行排序:
tempdata['logs'] = sorted(tempdata['logs'],
key=lambda k: (k['starttime'], k['time']))
每个元素按顺序比较元组。
作为旁注,这种方式将值作为字符串进行比较,而不是数字。不知道这是否与你相关。