logo

__dict__ in Python

In Python ist ein Wörterbuch ein ungeordneter Satz von Datenwerten das könnte sein Wird zum Speichern von Datenwerten verwendet ähnlich einer Karte. Im Gegensatz zu anderen Datentypen, die nur einen einzigen Wert pro Element enthalten können, können Wörterbücher auch einen enthalten Schlüsselwert Paar. Um das Wörterbuch zu erstellen effizienter , Schlüsselwert wird angeboten.

Wenn es um den Attributzugriff geht, ist der Punkt '.' (wie in x.any_attribute ) ist alles, was den meisten Benutzern bekannt ist. Einfach gesagt, Beim Attributzugriff handelt es sich um den Prozess des Abrufens eines Objekts, das mit einem bereits vorhandenen Objekt verbunden ist . Für jemanden, der Python verwendet, mag es sehr einfach aussehen, ohne zu sehr auf die Einzelheiten einzugehen. Hinter den Kulissen dieses relativ einfachen Prozesses passiert jedoch viel.

Was ist _dict_ ?

Jedes Modul verfügt über eine einzigartige Eigenschaft namens __dict__. Dieses Wörterbuch enthält die Symboltabelle für das Modul . Die (beschreibbaren) Eigenschaften eines Elements werden in einem Wörterbuch oder einem anderen Zuordnungsobjekt gespeichert.

system.out.println

Um es einfach auszudrücken: Jedes Objekt in Python hat ein Eigenschaft, die durch das Symbol __dict__ gekennzeichnet ist . Darüber hinaus verfügt dieses Objekt über alle Eigenschaften, die für es angegeben wurden. Ein anderer Name für __dict__ ist Mappingproxy Objekt. Wir können das Wörterbuch über verwenden Anwenden der Eigenschaft __dict__ zu einem Klassenobjekt.

Syntax :

 object.__dict__ 

Beispiel :

 class AnimalClass: def __init__(self,identity,age): self.identity = identity self.age = age def feature(self): if self.age == '10': return True else: return False ac = AnimalClass('Lion','10') print(ac.__dict__) 

Ausgabe:

 {'identity': 'Lion', 'age': '10'} 

Beispiel 2:

Dieses Beispiel soll dies anhand des demonstrieren __dict__-Attribut , man könnte aus jedem Objekt ein Wörterbuch erstellen:

 # class Flowers is defined class Flowers: # constructor def __init__(self): # keys are being initialized with # their corresponding values self.Rose = 'red' self.Lily = 'white' self.Lotus = 'pink' def displayit(self): print('The Dictionary from object fields belongs to the class Flowers :') # object animal of class Animals flower = Flowers() # calling displayit function flower.displayit() # calling the attribute __dict__ on flower # object and making it print it print(flower.__dict__) 

Ausgabe:

 The Dictionary from object fields belongs to the class Flowers : {'Rose': 'red', 'Lily': 'white', 'Lotus': 'pink'} 

Beispiel 3:

 def funct(): pass funct.practice = 1 print(funct.__dict__) class PracticeClass: x = 1 def practice_function(self): pass print(PracticeClass.__dict__) 

Ausgabe:

 {'practice': 1} {'__module__': '__main__', 'x': 1, 'practice_function': , '__dict__': , '__weakref__': , '__doc__': None} 

Verwenden von Dictionary ohne die Verwendung von __dict__ in Python:

Erstellen eines Wörterbuchs:

In Python kann ein Wörterbuch durch Einschließen von a erstellt werden Liste der Einträge in geschweiften Klammern und durch Komma getrennt . Das Wörterbuch speichert Wertepaare, wobei ein Paarelement der Schlüssel und ein anderes sein Schlüssel ist Schlüsselwert . Im Kontrast zu Schlüssel, welche können nicht wiederholt werden und müssen unveränderlich sein, Werte in Wörterbüchern können aus beliebigen Datentypen bestehen und dupliziert werden .

Die Elemente sind durch Kommata abgetrennt , jeder Schlüssel wird von seinem Wert unterschieden durch einen Doppelpunkt (:), und die gesamte Struktur ist darin enthalten geschweifte Klammern . Ein Wörterbuch, das völlig frei von allen Wörtern ist, wird wie folgt geschrieben: {} .

Die Schlüssel des Wörterbuchs müssen sein unveränderlich , wie zum Beispiel Ganzzahlen, Tupel oder Zeichenfolgen , obwohl die Werte jeden Typs haben können. In Python-Wörterbüchern wird derselbe Schlüsselname in unterschiedlicher Schreibweise als betrachtet ein eindeutiger Schlüssel. Bitte beachten Sie das Bei Wörterbuchschlüsseln muss die Groß-/Kleinschreibung beachtet werden ; Schlüssel mit ähnlichem Namen, aber unterschiedlicher Groß-/Kleinschreibung werden unterschiedlich behandelt.

Beispiel :

 # Creating a Dictionary # using Integer Keys only Dict = {1: 'JAVA', 2: 'T', 3: 'POINT'} print('
Creating a Dictionary by using Integer Keys : ') print(Dict) # Creating a Dictionary # using various Mixed keys Dict = {'Company': 'JavaTpoint', 7: [22, 35, 46, 97]} print('
Creating a Dictionary by using Mixed Keys : ') print(Dict) 

Ausgabe:

 Creating a Dictionary by using Integer Keys : {1: 'JAVA', 2: 'T', 3: 'POINT'} Creating a Dictionary by using Mixed Keys : {'Company': 'JavaTpoint', 7: [22, 35, 46, 97]} 

Der integrierte Methode dict() ermöglicht auch die Erstellung von Wörterbüchern . Einfach gesagt zwei geschweifte Klammern {} zusammen ergibt ein leeres Wörterbuch .

Beispiel :

 # Creating an empty Dictionary myDict = {} print('This is an Empty Dictionary: ') print(myDict) # Creating a Dictionary # using the dict() method myDict = dict({1: 'JAVA', 2: 'T', 3: 'POINT'}) print('
Creating a Dictionary by using the dict() method : ') print(myDict) # Creating a Dictionary # using each item as a different Pair myDict = dict([(1, 'JavaTpoint'), (2, 'Great')]) print('
Creating a Dictionary by using each item as a different pair : ') print(myDict) 

Ausgabe:

 This is an Empty Dictionary: {} Creating a Dictionary by using the dict() method : {1: 'JAVA', 2: 'T', 3: 'POINT'} Creating a Dictionary by using each item as a different pair : {1: 'JavaTpoint', 2: 'Great'} 

Komplexität beim Erstellen eines Wörterbuchs:

  • Zeitkomplexität: O(length(dict))
  • Raumkomplexität: An)

Verschachtelte Wörterbücher:

Es handelt sich um eine Form eines Wörterbuchs, in dem eins oder mehrere vorhanden sind An „keys“ ist ein Wörterbuch als Wert angehängt des Schlüssels.

Beispiel :

 # Creating a Nested Dictionary # as mentioned above using a dictionary as a value to a key in # a dictionary myDict = dict({1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}}) print('
Creating a Nested Dictionary : ') print(myDict) 

Ausgabe:

 Creating a Nested Dictionary : {1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}} 

Hinzufügen von Elementen zu einem Wörterbuch:

Es gibt mehrere Methoden zum Hinzufügen von Elementen zu einem Python-Wörterbuch. Indem Sie beispielsweise den Wert und den Schlüssel gemeinsam angeben, Dict[Key] = 'Wert', Es kann jeweils ein Wert zu einem Wörterbuch hinzugefügt werden. Verwendung der integrierte update()-Funktion , kann man einen vorhandenen Wert in einem Wörterbuch ändern. Ein vorhandenes Wörterbuch kann auch um erweitert werden verschachtelte Schlüsselwerte .

Hiba Bukhari

Hinweis: Beim Hinzufügen eines Werts wird der Wert aktualisiert, wenn die Schlüssel-Wert-Kombination bereits vorhanden ist. Wenn nicht, werden dem Wörterbuch ein neuer Schlüssel und ein neuer Wert hinzugefügt.

Beispiel :

 # Creating Empty Dictionary myDict = {} print('Empty Dictionary: ') print(myDict) # Adding elements only one at a time myDict[0] = 'Java' myDict[3] = 'T' myDict[6] = 41 print('
Dictionary after the addition of 3 elements: ') print(myDict) # Adding a set of values # to a particular Key myDict['settingValues'] = 7, 8, 9 print('
Dictionary after the adding a set of values to a key : ') print(myDict) # Updating the existing Key's Value myDict[3] = 'tPoint' print('
Dictionary after Updated key value: ') print(myDict) # Adding Nested Key value to Dictionary myDict[8] = {'Nested' :{'A' : 'boy', 'B' : 'Girl'}} print('
Dictionary after Addition of a Nested Key: ') print(myDict) 

Ausgabe:

 Empty Dictionary: {} Dictionary after the addition of 3 elements: {0: 'Java', 3: 'T', 6: 41} Dictionary after the adding a set of values to a key : {0: 'Java', 3: 'T', 6: 41, 'settingValues': (7, 8, 9)} Dictionary after Updated key value: {0: 'Java', 3: 'tPoint', 6: 41, 'settingValues': (7, 8, 9)} Dictionary after Addition of a Nested Key: {0: 'Java', 3: 'tPoint', 6: 41, 'settingValues': (7, 8, 9), 8: {'Nested': {'A': 'boy', 'B': 'Girl'}}} 

Komplexität beim Hinzufügen von Elementen zu einem Wörterbuch:

  • Zeitkomplexität: O(1)/O(n)
  • Raumkomplexität: O(1)

Zugriff auf Wörterbuchelemente:

Ein Wörterbuch beschäftigt Schlüssel , während andere Datentypen eine Indizierung erfordern, um Werte abzurufen. Schlüssel können mit dem verwendet werden get()-Funktion oder in eckigen Klammern [].

Für den Fall, dass a Schlüssel kann nicht gefunden werden im Wörterbuch, KeyError wird erzeugt wenn wir verwenden eckige Klammern []. Wenn der Schlüssel hingegen nicht gefunden werden kann, wird der Die Funktion get() gibt None zurück.

Beispiel :

 # Python program to demonstrate the # accessing of an element, from a Dictionary # Creating a Dictionary myDict = {1: 'Java', 'name': 'T', 2: 'Point', 4: 'Website'} # accessing an element using key print('Accessing an element using the key:') print(myDict['name']) print('Accessing another element using the key:') print(myDict[4]) # accessing an element using the get() method print('Accessing an using the get() method:') print(myDict.get(2)) print('Accessing another using the get() method:') print(myDict.get(1)) 

Ausgabe:

 Accessing an element using the key: T Accessing another element using the key: Website Accessing an using the get() method: Point Accessing another using the get() method: Java 

Komplexitäten beim Zugriff auf Elemente in einem Wörterbuch:

  • Zeitkomplexität: O(1)
  • Raumkomplexität: O(1)

Zugriff auf das Element eines verschachtelten Wörterbuchs:

Wir können die Hilfe der in Anspruch nehmen Indizierung []-Technik um den Wert eines vorhandenen Schlüssels im zu erhalten verschachteltes Wörterbuch .

Beispiel :

 # Creating a Dictionary myDict = {'myDict1': {3: 'JavatPoint'}, 'myDict2': {'Info.': 'Website'}} # Accessing the elements using the key print(myDict['myDict1']) print(myDict['myDict1'][3]) print(myDict['myDict2']['Info.']) 

Ausgabe:

Pete Davidson
 {3: 'JavatPoint'} JavatPoint Website 

Integrierte Wörterbuchmethoden:

klar() :

Die Funktion dict.clear() eliminiert jedes Schlüssel-Wert-Paar aus dem Wörterbuch.

Kopieren() :

A flachere Kopie des Wörterbuchs wird von der Methode dict.copy() zurückgegeben.

fromkeys() :

Verwendung der bereitgestellten Iterable (String, Liste, Menge oder Tupel) als Schlüssel und den angegebenen Wert, die Funktion dict.fromkeys() erstellt ein neues Wörterbuch .

erhalten() :

Das gibt den zugehörigen Wert an mit dem angegebenen Schlüssel.

Artikel() :

Periodenschlüssel

A Wörterbuchansichtsobjekt , das eine dynamische Darstellung der Wörterbuchelemente als Liste von Schlüssel-Wert-Paaren bietet ist zurück gekommen durch die Funktion dict.items(). Wenn das Wörterbuch aktualisiert wird, wird dies Das Ansichtsobjekt wird ebenfalls aktualisiert .

dict.keys() :

Die Funktion dict.keys() gibt ein Wörterbuchansichtsobjekt zurück mit dem Wörterbuch Liste der Schlüssel.

pop() :

Das gibt den Wert des Schlüssels nach dem Entfernen zurück . Wenn ein Schlüssel im Wörterbuch fehlt, wird entweder ein Fehler ausgelöst Schlüsselfehler oder gibt die zurück Standardwert falls einer vorhanden war.

trinken() :

Das Entfernt ein Element aus dem Wörterbuch und gibt ein Tupel zurück von (Schlüssel-Wert-)Paaren. Der Last In First Out (LIFO) Die Sequenz wird für die Rückgabe von Paaren verwendet.

setdefault() :

Das gibt den Wert des Wörterbuchs für den angegebenen Schlüssel zurück . Wenn der Schlüssel nicht gefunden werden kann, wird der Schlüssel mitgeliefert Standardwert hinzugefügt. Es setzt Keiner als die Standardwert wenn es nicht mitgeliefert wird.

MySQL zeigt Benutzer an

Werte() :

Der Wörterbuchansichtsobjekt, das eine dynamische Ansicht bietet von jedem Wert, der ist im Wörterbuch vorhanden ist, wird zurückgegeben durch die Funktion dict.values(). Wenn das Wörterbuch aktualisiert wird, wird dies Das Ansichtsobjekt wird ebenfalls aktualisiert .

aktualisieren() :

A Wörterbuch oder eine beliebige iterierbare Datei mit Schlüssel-Wert-Paaren , wie ein Tupel, kann aktualisiert werden mit der Funktion dict.update().

Beispiel :

 # Example to demonstrate all dictionary methods #Creating a Dictionary mydict1={1:'HTML',2:'CSS',3:'Javascript',4:'Python'} #copy method mydict2=mydict1.copy() print(mydict2) #clear method mydict1.clear() print(mydict1) #get method print(mydict2.get(1)) #items method print(mydict2.items()) #keys method print(mydict2.keys()) #pop method mydict2.pop(4) print(mydict2) #popitem method mydict2.popitem() print(mydict2) #update method mydict2.update({2:'C++'}) print(mydict2) #values method print(mydict2.values()) 

Ausgabe:

 {1: 'HTML', 2: 'CSS', 3: 'Javascript', 4: 'Python'} {} HTML dict_items([(1, 'HTML'), (2, 'CSS'), (3, 'Javascript'), (4, 'Python')]) dict_keys([1, 2, 3, 4]) {1: 'HTML', 2: 'CSS', 3: 'Javascript'} {1: 'HTML', 2: 'CSS'} {1: 'HTML', 2: 'C++'} dict_values(['HTML', 'C++']) 

Unterscheidung zwischen einem Wörterbuch und einer Liste:

Datenstrukturen wie a Liste und ein Wörterbuch sind grundsätzlich unterschiedlich. Ein geordnete Artikelserie Kann in einem gespeichert werden Liste damit wir es indizieren oder darüber iterieren können. Listen können auch nach ihrer Generierung noch geändert werden, da es sich um einen veränderbaren Typ handelt. Der Python-Wörterbuch ist ein Schlüsselwertspeicher und eine Implementierung von a Hash-tabelle . Es folgt keiner bestimmten Reihenfolge und erfordert hashbare Schlüssel. Darüber hinaus sind wichtige Suchvorgänge schnell möglich.

A Listen Elemente enthalten die folgenden Funktionen:

  • Sofern nicht ausdrücklich nachbestellt, sind sie behalten ihre aktuelle Reihenfolge bei (zum Beispiel durch Sortieren der Liste).
  • Sie könnten von welcher Art auch immer sein, oder sogar von einer Kombination von Sorten .
  • Durch numerische (nullbasierte) Indizes, wir dürfen darauf zugreifen.

Die Eigenschaften von Wörterbuch Elemente sind wie folgt:

  • Jeder Eintrag hat eine Wert und einen Schlüssel .
  • Bestellungen sind nicht gewährleistet .
  • Schlüsselwertewerden für den Zugriff auf Elemente verwendet.Jeder Hashtabellentyp (außer einem Diktat)können für Schlüsselwerte verwendet werden und Typen können kombiniert werden.Jede Art von Wert, einschließlich anderer Diktate, ist erlaubt , und Typen können kombiniert werden.

Verwendung :

Wir benutzen ein Wörterbuch wenn wir eine haben Satz unterschiedlicher Schlüssel, die Werten entsprechen , aber a Liste wenn wir eine haben geordnete Gruppe von Dingen .

Abschluss :

  • In einer Computersprache, Wörterbücher sind eine Art Datenstruktur, die zum Speichern von Informationen verwendet wird das hängt irgendwie zusammen.
  • Jedes Modul verfügt über eine einzigartige Eigenschaft namens __dict__.
  • __dict__ enthält die Symboltabelle für das Modul .
  • Die Eigenschaften eines Elements werden in a gespeichert Mapping-Objekt.
  • Jedes Objekt in Python hat ein Eigenschaft, die durch das Symbol __dict__ gekennzeichnet ist .
  • Ein anderer Name für __dict__ ist auch bekannt als Mappingproxy-Objekt.
  • Die beiden Komponenten eines Python-Wörterbuchs werden aufgerufen Schlüssel und Werte .
  • Du möglicherweise nicht erhalten Ihre Daten werden in derselben Reihenfolge zurückgegeben, in der Sie sie eingegeben haben, da Wörterbücher ihre Daten nicht in einer bestimmten Reihenfolge aufbewahren.
  • Die Schlüssel bestehen aus nur eine Sache.
  • Werte können sein ganze Zahlen, Listen, Listen innerhalb von Listen , usw.
  • Mehr als kann es nicht geben ein Eintrag pro Schlüssel (Es ist kein doppelter Schlüssel erlaubt.)
  • Die Schlüssel des Wörterbuchs müssen sein unveränderlich , wie zum Beispiel Ganzzahlen, Tupel oder Zeichenfolgen , obwohl die Werte jeden Typs haben können.
  • Wörterbuch Bei Schlüsseln wird die Groß-/Kleinschreibung beachtet ; In Python-Wörterbüchern wird derselbe Schlüsselname in unterschiedlicher Schreibweise als a betrachtet eindeutiger Schlüssel .