我有一个名为records的变量,如下所示:
records = {
'set1': [{'Time Stamp': datetime, 'data': data, ...}, {'Time Stamp': datetime, 'data': data, ...}, ...],
'set2': [{'Time Stamp': datetime, 'data': data, ...}, {'Time Stamp': datetime, 'data': data, ...}, ...]
.
.
.
}
我正在尝试删除所有字典(其中包含“时间戳”的字典),这些字典在其他“集合”中没有共同的时间戳。
我的第一个想法是从记录中创建一个变量,如下所示:
var = {
'set1': [datetime, datetime, ...],
'set2': [datetime, datetime, ...],
.
.
.
}
从那里循环到类似list(set(a) & set(b))
(来自here)的内容,以获取所有常用时间戳的列表。
我怎样才能创建变量var
?我假设可以使用列表生成器表达式来完成,我只是不知道如何创建它们。
如果你不认为这是正确的方法,你会怎么做?就时间复杂度而言,不会有超过10个“集合”,但每个集合中有大约4,000个字典,每个字典中包含大约5个键/值。
编辑: 要简化问题,如何从字典列表中创建列表?为了说明这一点:
dict = {'time': timevalue, 'otherstuff': othervalue}
list = [dict, dict, dict] # a list of dictionaries in the form of dict
# create result
result = [timevalue, timevalue, timevalue, timevalue]
答案 0 :(得分:0)
>>> import datetime
>>>
>>> my_dict = {'time': datetime.datetime.now(), 'otherstuff': 'fooo'}
>>> my_list = [my_dict for i in xrange(3)]
>>> result = [d['time'] for d in my_list]
>>> result
[datetime.datetime(2014, 8, 19, 14, 13, 3, 620886), datetime.datetime(2014, 8, 19, 14, 13, 3, 620886), datetime.datetime(2014, 8, 19, 14, 13, 3, 620886)]
>>>
答案 1 :(得分:-2)
这样的事情可能是:
var = {}
for set, list in records.iteritems():
var[set] = [i['Time Stamp'] for i in list]