字典列表:按字典值排序

时间:2019-01-15 16:29:34

标签: python python-3.x

我有一个像下面这样的字典列表:

[
 {'init_time': datetime.time(14, 0), 'end_time': datetime.time(19, 0), 'value': 5.2}, 
 {'init_time': datetime.time(17, 0), 'end_time': datetime.time(18, 0), 'value': 6.5},
 {'init_time': datetime.time(15, 0), 'end_time': datetime.time(17, 0), 'value': 2.5}
]

如何根据每个字典的init_time的值对该列表进行排序?通常,sorted可以基于键或值对字典进行排序,但就我而言,我对使用字典的值对字典进行排序不感兴趣,而是对列表进行排序。

例如,上面的输出将是:

[
 {'init_time': datetime.time(14, 0), 'end_time': datetime.time(19, 0), 'value': 5.2}, 
 {'init_time': datetime.time(15, 0), 'end_time': datetime.time(17, 0), 'value': 2.5}
 {'init_time': datetime.time(17, 0), 'end_time': datetime.time(18, 0), 'value': 6.5},
]

1 个答案:

答案 0 :(得分:4)

Python的sorted函数具有一个key参数,该参数将用于比较中,

new_list = sorted(old_list, key=lambda item: item["init_time"])