我有一个列表,我们称它为combinedLists
,其中包含n
个元素,每个元素都是dict对象的列表。 combinedLists
的每个列表中的字典数量通常不相同(但可以是),即:
len(combinedLists) = 2
type(combinedLists[0]) = list
type(combinedLists[0][0]) = dict
len(combinedLists[0]) = 250
type(combinedLists[1]) = list
type(combinedLists[1][0]) = dict
len(combinedLists[1]) = 400
每个dict对象都有一个tstamp
键,该键给出日期时间对象的值。这些列表已经按时间顺序排列,因此索引0处的字典始终是最新的时间戳,而最后的字典是最早的时间戳。
我想做的是:
combinedLists
的每个列表元素组合到一个按时间顺序排列的dict对象的列表(我们将其称为consolidatedList
),其中索引0
是最新的dict,即consolidatedList[0]['tstamp']
是最新的,consolidatedList[-1]['tstamp']
是最早的。我一直在重写算法。如果您愿意的话,我需要一些建议。
答案 0 :(得分:3)
只要您的datetime对象被Python的list.sort()
函数识别,此方法就应该起作用。 datetime
和time
库似乎都对我有用。
from operator import itemgetter
consolidatedlist = [d for list_of_dicts in combinedlist for d in list_of_dicts]
consolidatedlist.sort(key=itemgetter('tstamp'))