来自多个列表/字典的日期时间的Python交集

2024-06-16 11:31:47 发布

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

我有一个名为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个“集合”,但每个集合有大约4000个字典,每个字典中有大约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]

Tags: 列表datadatetime字典timevarstamp时间
2条回答

可能是这样的:

var = {}
for set, list in records.iteritems():
    var[set] = [i['Time Stamp'] for i in list]
>>> 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)]
>>> 

相关问题 更多 >