Dado um dicionário aninhado, a tarefa é remover dicionários duplicados do dicionário. Abaixo estão alguns métodos para completar a tarefa dada.

Método # 1: usando o método ingênuo

ini_dict = {'a':{'b':1, 'c':2}, 'b':{'b':1, 'c':2},  
            'c':{'a':2, 'b':3}, 'd':{'a':2, 'b':7}} 
print ("initial dictionary", str(ini_dict)) 
result = {} 
  
for key, value in ini_dict.items(): 
    if value not in result.values(): 
        result[key] = value 
          
print ("result", str(result)) 
Resultado:

dicionário inicial {'c': {'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}, 'a': {'c': 2, 'b': 1}, 'b': {'c': 2, 'b': 1}}
resultado {'c': {'a': 2, 'b': 3}, 'd': { 'a': 2, 'b': 7}, 'a': {'c': 2, 'b': 1}}

 
Método 2: usando classificado e definido



ini_dict = {'a':{'b':1, 'c':2}, 'b':{'b':1, 'c':2}, 
            'c':{'a':2, 'b':3}, 'd':{'a':2, 'b':7}} 
print ("initial dictionary", str(ini_dict)) 
keep = set({repr(sorted(value.items())):key 
          for key, value in ini_dict.items()}.values()) 
  
for key in list(ini_dict): 
    if key not in keep: 
        del ini_dict[key] 
          
print ("result", str(ini_dict)) 
Resultado:

dicionário inicial {'a': {'b': 1, 'c': 2}, 'b': {'b': 1, 'c': 2}, 'c': {'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}}
resultado {'b': {'b': 1, 'c': 2}, 'c': { 'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}}