logo

__dict__ in Python

In Python, un dizionario è un insieme non ordinato di valori di dati potrebbe essere utilizzato per memorizzare i valori dei dati allo stesso modo di una mappa. A differenza di altri tipi di dati, che possono includere solo un singolo valore per elemento, i dizionari possono contenere anche un file chiave:valore paio. Per fare il dizionario più efficiente , viene offerto il valore-chiave.

Quando riguarda l'accesso agli attributi, il punto '.' (come in x.qualsiasi_attributo ) è tutto ciò con cui la maggior parte degli utenti ha familiarità. Detto semplicemente, l'accesso agli attributi è il processo per ottenere un oggetto connesso a quello che già possiedi . Può sembrare molto semplice a qualcuno che usa Python senza entrare troppo nello specifico. Tuttavia, c’è molto da fare dietro le quinte per questo processo relativamente semplice.

Cos'è _dict_?

Ogni modulo ha una proprietà unica chiamata __detto__. Questo dizionario contiene la tabella dei simboli del modulo . Le caratteristiche (scrivibili) di un elemento sono memorizzate in un dizionario o in un altro oggetto di mappatura.

Per dirla semplicemente, ogni oggetto in Python ha un file proprietà che è indicata dal simbolo __dict__ . Inoltre, questo oggetto ha tutte le proprietà che gli sono state specificate. Un altro nome per __dict__ è mappingproxy oggetto. Possiamo usare il dizionario tramite applicando la proprietà __dict__ ad un oggetto di classe.

Sintassi:

 object.__dict__ 

Esempio :

 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__) 

Produzione:

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

Esempio 2:

Questo esempio lo dimostrerà per mezzo di Attributo __dict__ , si potrebbe creare un dizionario da qualsiasi oggetto:

 # 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__) 

Produzione:

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

Esempio 3:

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

Produzione:

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

Utilizzo del dizionario senza l'uso di __dict__ in Python:

Creazione di un dizionario:

In Python, un dizionario può essere creato racchiudendo a elenco delle voci racchiuse tra parentesi graffe e separandole con una virgola . Il dizionario memorizza coppie di valori, dove un elemento della coppia è la chiave e un altro è la sua Chiave: valore . In contrasto con chiavi, Quale non possono essere ripetuti e devono essere immutabili, valori nei dizionari può contenere qualsiasi tipo di dati e può essere duplicato .

Gli elementi sono separati da virgole , ogni chiave è distinta dal suo valore con i due punti (:), e l'intera struttura è contenuta parentesi graffe . Un dizionario completamente privo di parole si scrive così: {} .

Le chiavi del dizionario devono essere immutabile , ad esempio numeri interi, tuple o stringhe , sebbene i valori possano essere di qualsiasi tipo. Nei dizionari Python, lo stesso nome di chiave scritto diversamente viene considerato come una chiave distinta. Per favore, prendine nota i tasti del dizionario fanno distinzione tra maiuscole e minuscole ; le chiavi con nome simile ma maiuscole e minuscole distinte verranno gestite diversamente.

Esempio :

 # 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) 

Produzione:

 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]} 

IL metodo integrato dict() consente anche il creazione di dizionari . In poche parole due parentesi graffe {} insieme risulterà in un dizionario vuoto .

Esempio :

 # 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) 

Produzione:

 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'} 

Complessità per la creazione di un dizionario:

  • Complessità temporale: O(lunghezza(dict))
  • Complessità spaziale: SU)

Dizionari nidificati:

È una forma di dizionario in cui uno o più di uno keys ha un dizionario allegato come valore della chiave.

Esempio :

 # 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) 

Produzione:

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

Aggiunta di elementi a un dizionario:

Ci sono diversi metodi per aggiungere elementi a un dizionario Python. Specificando insieme il valore e la chiave, ad esempio, Dict[Chiave] = 'Valore', è possibile aggiungere un valore alla volta a un dizionario. Usando il funzione update() incorporata , è possibile modificare un valore esistente in un dizionario. È anche possibile espandere un dizionario esistente valori chiave nidificati .

metodi stringa java

Nota: quando si aggiunge un valore, il valore viene aggiornato se la combinazione chiave-valore esiste già. In caso contrario, una nuova chiave e un nuovo valore vengono aggiunti al dizionario.

Esempio :

 # 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) 

Produzione:

 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'}}} 

Complessità per l'aggiunta di elementi a un dizionario:

  • Complessità temporale: O(1)/O(n)
  • Complessità spaziale: O(1)

Accesso agli elementi del dizionario:

Un dizionario impiega chiavi , mentre altri tipi di dati richiedono l'indicizzazione per recuperare i valori. I tasti possono essere utilizzati con get() funzione O tra parentesi quadre [].

Nel caso in cui a Impossibile trovare la chiave nel dizionario, Viene prodotto KeyError se usiamo parentesi quadre []. D'altra parte, se la chiave non può essere localizzata, il file La funzione get() restituisce Nessuno.

Esempio :

 # 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)) 

Produzione:

 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 

Complessità per l'accesso agli elementi in un dizionario:

  • Complessità temporale: O(1)
  • Complessità spaziale: O(1)

Accesso all'elemento di un dizionario nidificato:

Possiamo prendere l'aiuto di tecnica di indicizzazione []. per ottenere il valore di una chiave esistente nel file dizionario nidificato .

Esempio :

 # 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.']) 

Produzione:

 {3: 'JavatPoint'} JavatPoint Website 

Metodi del dizionario integrato:

chiaro() :

La funzione dict.clear() elimina ogni coppia chiave-valore dal dizionario.

copia() :

UN copia meno profonda del dizionario viene restituito dal metodo dict.copy().

rekha indiano

dai tasti() :

Utilizzando l'iterabile fornito (stringa, lista, set o tupla) come chiavi e il valore specificato, la funzione dict.fromkeys() crea un nuovo dizionario .

Ottenere() :

Questo restituisce il valore associato con la chiave data.

elementi() :

UN oggetto vista dizionario , che offre una presentazione dinamica degli elementi del dizionario come elenco di coppie chiave-valore viene restituito dalla funzione dict.items(). Quando il dizionario viene aggiornato, this viene aggiornato anche l'oggetto vista .

dict.keys() :

La funzione dict.keys() restituisce un oggetto vista dizionario con quelli del dizionario elenco delle chiavi.

pop() :

Questo restituisce il valore della chiave dopo averla rimossa . Se manca una chiave dal dizionario, genera a Errore chiave o restituisce il valore di default se ne è stato fornito uno.

bere() :

Questo rimuove un elemento dal dizionario e restituisce una tupla di coppie (chiave, valore). IL Ultimo entrato, primo uscito (LIFO) la sequenza viene utilizzata per restituire le coppie.

imposta default() :

Questo restituisce il valore del dizionario per la chiave specificata . Se la chiave non può essere scoperta, la chiave verrà fornita valore di default è aggiunto. Tramonta Nessuno come il valore di default se non viene fornito.

valori() :

IL oggetto vista dizionario che offre una vista dinamica di ogni valore che è presente nel dizionario, viene restituito dalla funzione dict.values(). Quando il dizionario viene aggiornato, this viene aggiornato anche l'oggetto vista .

aggiornamento() :

UN dizionario o qualsiasi iterabile con coppie chiave-valore , come una tupla, può essere aggiornato utilizzando la funzione dict.update().

Esempio :

 # 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()) 

Produzione:

 {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++']) 

Differenza tra un dizionario e un elenco:

Strutture dati come a elenco e un dizionario sono fondamentalmente dissimili. UN serie ordinata di articoli può essere memorizzato in a elenco in modo da poterlo indicizzare o scorrere su di esso. Gli elenchi possono essere modificati anche dopo che sono già stati generati poiché sono di tipo modificabile. IL Dizionario Python è un archiviazione di valori-chiave e un'implementazione di a tabella hash . Non segue alcuna sequenza particolare e richiede chiavi hashable. Inoltre, è veloce per le ricerche chiave.

UN lista gli elementi contengono le seguenti caratteristiche:

  • A meno che non siano specificatamente riordinati, loro mantenere l'ordine attuale (ad esempio, ordinando l'elenco).
  • Potrebbero essere di qualunque tipo, o anche a combinazione di sorta .
  • Attraverso indici numerici (a base zero)., potremmo accedervi.

Le caratteristiche di dizionario gli elementi sono i seguenti:

  • Ogni voce ha un valore e una chiave .
  • Gli ordini sono non garantito .
  • Valori chiavevengono utilizzati per accedere agli elementi.Qualsiasi tipo di tabella hash (diverso da un dict)possono essere utilizzati per valori chiave e i tipi possono essere combinati.Qualsiasi tipo di valore, compresi altri dettami, È permesso e i tipi possono essere combinati.

Utilizzo:

Usiamo a dizionario se abbiamo a insieme di chiavi distinte che corrispondono a valori , ma a elenco quando abbiamo un gruppo ordinato di cose .

Conclusione :

  • In un linguaggio informatico, i dizionari sono una sorta di struttura dati utilizzata per contenere informazioni questo è in qualche modo correlato.
  • Ogni modulo ha una proprietà unica chiamata __detto__.
  • __detto__ contiene la tabella dei simboli del modulo .
  • Le proprietà di un elemento sono memorizzate in a oggetto di mappatura.
  • Ogni oggetto in Python ha un proprietà che è indicata dal simbolo __dict__ .
  • Un altro nome per __dict__ è noto anche come oggetto mappingproxy.
  • I due componenti di un dizionario Python vengono chiamati Chiavi e valori .
  • Voi potrebbe non ricevere i tuoi dati nell'ordine simile a quello in cui li hai inseriti poiché i dizionari non conservano i loro dati in un ordine specifico.
  • Le chiavi saranno composte solo da una cosa.
  • I valori possono essere numeri interi, liste, liste dentro liste , eccetera.
  • Non può esserci più di una voce per chiave (non è consentita alcuna chiave duplicata)
  • Le chiavi del dizionario devono essere immutabile , ad esempio numeri interi, tuple o stringhe , sebbene i valori possano essere di qualsiasi tipo.
  • Dizionario i tasti fanno distinzione tra maiuscole e minuscole ; nei dizionari Python, lo stesso nome di chiave scritto diversamente è considerato come a chiave distinta .