Если значения уникальны, мы можем инвертировать наш словарь:
reversed_dict = {tuple(res[key]): key for key in res}
Ключи в словаре должны быть изменяемыми, поэтому нам пришлось преобразовать их в кортежи.
Затем мыможет выполнить простой поиск значений:
final_result = {}
for v in diff_tolistoflist:
k = reversed_dict.get(tuple(v))
if k:
final_result[k] = v
Я использовал dict.get
, чтобы он не выдавал исключение, если что-то не так.
>>> final_result
{'cXboTHyIeZaof6x7': ['#de6262', '#ffb88c'], 'utTtWdchE2T6vUF5': ['#A3DAC3', '#8BD0D4']}
В этом решении учитывается регистр. Это означает, что f
и F
считаются разными. Чтобы сделать его нечувствительным к регистру, вы можете преобразовать строку в более низкую при обращении к словарю, а затем сделать то же самое с diff_tolistoflist
(при его объявлении или при поиске значений в цикле).