Я никогда не думал, что столкнусь с проблемами с питоном, но у меня есть. Я пытаюсь сравнить действительно большие списки словарей друг с другом на основе значений словаря. Я сравниваю два списка, с первым вот так
biglist1=[{'transaction':'somevalue', 'id':'somevalue', 'date':'somevalue' ...}, {'transactio':'somevalue', 'id':'somevalue', 'date':'somevalue' ...}, ...]
С 'somevalue', обозначающим сгенерированную пользователем строку, int или decimal. Теперь второй список очень похож, за исключением того, что значения 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)
... и так далее, не сравнивая значения идентификаторов, пока не получу окончательный список совпадений. Поскольку списки могут быть очень большими (около 3000+ элементов в каждом), Python может пройти довольно много времени.
Полагаю, это не совсем то, как следует проводить такое сравнение. Есть идеи?