Я никогда не думал, что столкнулся с проблемами скорости с python, но у меня есть. Я пытаюсь сравнить действительно большие списки словарей друг с другом на основе значений словаря. Я сравниваю два списка, с первым таким образом
biglist1=[{'transaction':'somevalue', 'id':'somevalue', 'date':'somevalue' ...}, {'transactio':'somevalue', 'id':'somevalue', 'date':'somevalue' ...}, ...]
С 'somevalue', стоящим для генерируемой пользователем строки, int или десятичной. Теперь второй список довольно похож, за исключением того, что значения id всегда пусты, поскольку они еще не назначены.
biglist2=[{'transaction':'somevalue', 'id':'', 'date':'somevalue' ...}, {'transactio':'somevalue', 'id':'', 'date':'somevalue' ...}, ...]
Итак, я хочу получить список словарей в biglist2, которые соответствуют словарям в biglist1 для всех других ключей, кроме id.
Я делал
for item in biglist2:
for transaction in biglist1:
if item['transaction'] == transaction['transaction']:
list_transactionnamematches.append(transaction)
for item in biglist2:
for transaction in list_transactionnamematches:
if item['date'] == transaction['date']:
list_transactionnamematches.append(transaction)
... и т.д., не сравнивая значения id, пока не получу окончательный список совпадений. Так как списки могут быть действительно большими (около 3000+ элементов каждый), это займет довольно много времени, чтобы python прошел цикл.
Я предполагаю, что на самом деле это не так, как это должно быть сделано. Любые идеи?