Bei einem verschachtelten Wörterbuch besteht die Aufgabe darin, doppelte Wörterbücher aus dem Wörterbuch zu entfernen. Im Folgenden sind einige Methoden aufgeführt, um die angegebene Aufgabe abzuschließen.

Methode 1: Verwenden der naiven Methode

  
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)) 
Ausgabe:

Anfangswörterbuch {'c': {'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}, 'a': {'c': 2, 'b': 1}, 'b': {'c': 2, 'b': 1}}
Ergebnis {'c': {'a': 2, 'b': 3}, 'd': { 'a': 2, 'b': 7}, 'a': {'c': 2, 'b': 1}}

 
Methode 2: Verwenden von sortiert und gesetzt



  
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)) 
Ausgabe:

Anfangswörterbuch {'a': {'b': 1, 'c': 2}, 'b': {'b': 1, 'c': 2}, 'c': {'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}}
Ergebnis {'b': {'b': 1, 'c': 2}, 'c': { 'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}}