[英]Python intersection of datetimes from multiple lists/dictionaries
我有一個名為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))
(從這里開始 )以獲取所有常見時間戳的列表。
我如何創建變量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]
>>> 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)]
>>>
可能是這樣的:
var = {}
for set, list in records.iteritems():
var[set] = [i['Time Stamp'] for i in list]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.