У меня есть 2 списка словарей, скажем:
List_D1 = [{'Symbol':'GFX','Time':'9:36am', 'Change':-0.18, 'Volume':181800},
{'Symbol':'AIG','Time':'9:36am', 'Change':-0.15, 'Volume': 195500},
{'Symbol':'AXP','Time':'9:36am', 'Change':-0.46, 'Volume': 935000},
]
List_D2 = [{'Symbol':'AA','Time':'7:36am', 'Change':-0.08, 'Volume':181800},
{'Symbol':'AIG','Time':'9:36am', 'Change':0.99, 'Volume': 197500},
{'Symbol':'GFX','Time':'9:36am', 'Change':-0.46, 'Volume': 935000},
]
Я хочу выбрать элементы в отдельные списки с одинаковыми значениями «Символ» и «Время»:
В приведенном выше примере это должно быть пара:
Пара 1:
List_D1 : {'Symbol':'AIG','Time':'9:36am', 'Change':-0.15, 'Volume': 195500}
List_D2 : {'Symbol':'AIG','Time':'9:36am', 'Change':0.99, 'Volume': 197500}
Пара 2:
List_D1 :{'Symbol':'GFX','Time':'9:36am', 'Change':-0.18, 'Volume':181800}
List_D2 :{'Symbol':'GFX','Time':'9:36am', 'Change':-0.46, 'Volume': 935000}
Теперь я просто перебираю каждую запись в разных списках словаря, мне интересно, есть ли лучшая идея, чтобы сделать это более эффективно?
Я подумываю об использовании itemgetter до sort(List_D1+List_D2)
в Python, а затем использовать функцию groupby
для объединения всего отсортированного списка и групп, которые я хочу соединить вместе. Однако, делая это, я не могу сказать, какой элемент из каких списков.
Here is my source code :
from operator import itemgetter
from itertools import groupby
ListsBoth = List_D1+List_D2
key1 = 'Symbol'
key2 = 'Time'
grouper = itemgetter(key1,key2)
ResuListx2.sort(key=grouper)
for key, testItem in groupby(ListsBoth,key=grouper):
// here I can group all items with same 'Symbol' AND 'Time' value together, but just missed the original "List" info - where each item in same group comes from. but I need it for my application.
...... handle each item in testItem ()