Wörterbücher in Python sind eine Sammlung von Schlüssel-Wert-Datenpaaren. Diese werden in vielen Manipulationen in Python verwendet und sind eine der wichtigsten Datenstrukturen in Python. Zur Berechnung der Länge des Wörterbuchs wird die integrierte len()Methode verwendet.

len() -Methode in Python:

Diese integrierte Methode verwendet ein Python-Objekt als Argument und gibt die Anzahl der darin enthaltenen Elemente zurück. Es kann für Zeichenfolgen, Listen, Wörterbücher, Tupel und Mengen verwendet werden. Das einzige, was zu beachten ist, ist, dass das Argument entweder eine Sequenz oder eine Sammlung sein muss.

Länge eines einfachen Wörterbuchs ermitteln:

Betrachten Sie die folgenden Details einer Person:

Name: Steve
Alter: 30 Jahre
Bezeichnung: Programmierer

Diese Informationen können durch ein einfaches Wörterbuch gekennzeichnet werden. Ein einfaches Wörterbuch enthält nur einige Schlüssel-Wert-Paare. Sie sind nicht sehr komplex. Wenn die len()Methode angewendet wird, gibt sie direkt die Antwort. Es gibt die Anzahl der Einträge im Wörterbuch an. Zum Beispiel:



  
  
dict1 ={'Name':'Steve', 'Age':30, 'Designation':'Programmer'} 
  
print("len() method :", len(dict1)) 
  
print("len() method with keys() :", len(dict1.keys())) 
  
print("len() method with values():", len(dict1.values())) 

Ausgabe:

len() -Methode: 3
len() -Methode mit Schlüsseln(): 3
len() -Methode mit Werten(): 3

Ermitteln der Länge des verschachtelten Wörterbuchs:

Betrachten Sie die folgenden Details zu einer Person:

Name: Steve
Alter: 30 Jahre
Bezeichnung: Programmierer
Adresse:
      Straße: Brigadenstraße
      Stadt: Bangalore
      Land: Indien

Diese Art von Informationen kann mithilfe verschachtelter Wörterbücher dargestellt werden. Die verschachtelten Wörterbücher enthalten Wörterbücher in Wörterbüchern. In einem Schlüssel-Wert-Paar kann für einen Schlüssel ein anderes Wörterbuch der Wert sein. In solchen Fällen ist len()die Ausgabe nicht korrekt , wenn das Wörterbuch einfach an die Methode übergeben wird. Schauen Sie sich den folgenden Code an:

  
  
dict2 ={ 
       'Name':'Steve', 
       'Age':30, 
       'Designation':'Programmer', 
       'address':{
           'Street':'Brigade Road', 
           'City':'Bangalore', 
           'Country':'India'
         
                 } 
      } 
  
print("len() method :", len(dict2)) 
print("len() method with keys() :", len(dict2.keys())) 
print("len() method with values():", len(dict2.values())) 

Ausgabe:

len() -Methode: 4
len() -Methode mit Schlüsseln(): 4
len() Methode mit Werten(): 4

Unabhängig davon, welche Methode Sie anwenden, erhalten Sie nur '4' als Ausgabe. Die tatsächliche Anzahl der Einträge beträgt jedoch '7'. Die Schlüssel sind Name, Alter, Bezeichnung, Adresse, Straße, Stadt und Land. Die Methode betrachtet das innere Wörterbuch, das ein Wert für einen der Schlüssel ist, als einen einzelnen Wert. Um dieses Problem zu lösen, müssen wir die Länge des inneren Wörterbuchs explizit zum äußeren hinzufügen. Es kann wie folgt codiert werden:

  
  
  
dict2 ={                    
       'Name':'Steve', 
       'Age':30, 
       'Designation':'Programmer', 
       'address': 
              { 
           'Street':'Brigade Road', 
           'City':'Bangalore', 
           'Country':'India'
              } 
      } 
  
length = len(dict2)+len(dict2['address']) 
  
print("The length of the nested dictionary is ", length) 

Ausgabe:

Die Länge des verschachtelten Wörterbuchs beträgt 7

Jetzt funktioniert es gut !!!



Ist es jedoch möglich, jedes Mal explizit zu programmieren, um die Länge der inneren Wörterbücher hinzuzufügen? Was ist, wenn wir vorher nicht wissen, wie viele innere Wörterbücher es gibt? Betrachten Sie nun das folgende Detail:

Name:
    Vorname: Steve
    Nachname: Jobs
Alter: 30 Jahre
Bezeichnung: Programmierer
Adresse:
      Straße: Brigadenstraße
      Stadt: Bangalore
      Land: Indien

Hier haben wir zwei innere Wörterbücher. Es ist keine optimierte Methode, die Länge der inneren Wörterbücher jedes Mal explizit hinzuzufügen. Wir können dieses Problem lösen, indem wir es isinstance()mit der len()Methode kombinieren .

Methode isinstance():

Diese Methode akzeptiert zwei Argumente. Der erste ist Objekt . Wir müssen ein Python-Objekt daran übergeben. Das Objekt kann ein int, ein float, ein iterable oder irgendetwas sein. Das zweite zu übergebende Argument ist Typ / Klasse . Es bezeichnet den Typ / die Klasse, anhand derer das erste Argument auf seine Instanz überprüft wird. Diese Methode kann uns helfen, die Länge eines verschachtelten Wörterbuchs zu ermitteln.

Die Idee ist, zuerst die Länge des gesamten Wörterbuchs in einer Variablen zu speichern (zum Beispiel 'Länge' hier) . Durchlaufen Sie dann das gesamte values()Wörterbuch und prüfen Sie, ob es sich um eine Instanz von handelt dict. Wenn 'True'dann die Länge dieses inneren Wörterbuchs gefunden und der Variablen hinzugefügt wird length. Auf diese Weise konnte die Gesamtlänge eines verschachtelten Wörterbuchs ermittelt werden. Der Beispielcode ist unten angegeben.

  
  
dict2 ={ 
       'Name': 
           { 
               'first_name':'Steve', 
               'Last_name':'Jobs'
           }, 
       'Age':30, 
       'Designation':'Programmer', 
       'address': 
           { 
           'Street':'Rockins Road', 
           'City':'Bangalore', 
           'Country':'India'
           }        
      } 
  
length = len(dict2) 
  
for i in dict2.values(): 
      
    
    if isinstance(i, dict): 
        length += len(i) 
          
print("The length of the dictionary is", length) 

Ausgabe:

Die Länge des Wörterbuchs beträgt 9

Wenn das Wörterbuch wie unten weiter tief verschachtelt ist:

Name:
    Vorname: Steve
    Nachname: Jobs
Alter: 30 Jahre
Bezeichnung: Programmierer
Adresse:
      Straße:
          St_number: 4
          St_name: Brigade Road
      Stadt: Bangalore
      Land: Indien

Ändern Sie dann den Code wie folgt:

  
  
dict2 ={ 
       'Name': 
           { 
               'first_name':'Steve', 
               'Last_name':'Jobs'
           }, 
       'Age':30, 
       'Designation':'Programmer', 
       'address': 
           { 
           'Street': 
               { 
                   'st_number':4, 
                   'st_name':'Rockins Road'
               }, 
           'City':'Bangalore', 
           'Country':'India'
           }        
      } 
  
length = len(dict2) 
  
for i in dict2.values(): 
      
    
    if isinstance(i, dict): 
          
        
        length += len(i) 
          
        
        
        for j in i.values(): 
              
             if isinstance(j, dict): 
                length += len(j) 
          
print("The total length of the dictionary is ", length) 

Ausgabe:

Die Gesamtlänge des Wörterbuchs beträgt 11