Я пытаюсь сравнить два словаря, чтобы проверить точность большого набора данных
Я хочу посмотреть, принадлежат ли две точки одному ключу в словаре 1, принадлежат ли они одному ключу в словаре 2
У меня есть много способов сделать двойной цикл for с "если точки в обоих словарях", я ищу более быстрый способ сравнения обоих словарей
dict_1 имеет только 1 ключ длякаждый point_id, где dict_2 может иметь несколько ключей для 1 point_id
, оба словаря выглядят так:
{key1 : [list of point id], key2 : [list of point id], etc}
dict_1 = {key1 : [1,2,3,4,5,6], key2 : [7,8,9,10,11,12]}
dict_2 = {key3 : [1,2,4,6,8,11,12], key4 :[2,5,7,9,10,11,12]}
def accuracy_from_dict_to_dict(dict_1,dict_2):
total, truth = 0,0
for key_dict_1 in dict_1:
point_of_key = dict_1.get(key_dict_1)
i=0
while i < len(point_of_key): #for each point of the key_dict_1 list
j = i+1
while j < len(point of key):
for key_dict_2 in dict_2:
point_i = point_of_key[i]
point_j = point_of_key[j]
if point_i in key_dict_2 and point_j in key_dict_2:
truth += 1
total += 1
j += 1
i+=1
Проблема не в самом коде, а в большейвремя расчета.если набор данных не достаточно мал, он будет долго работать