logo

__dict__ i Python

I Python er en ordbog en uordnet sæt af dataværdier det kunne være bruges til at gemme dataværdier på samme måde som et kort. I modsætning til andre datatyper, som kun kan indeholde en enkelt værdi pr. element, kan ordbøger også indeholde en nøgle:værdi par. At lave en ordbog mere effektivt , Key-Value tilbydes.

Når det vedrører attributadgang, er prikken '.' (som i x.enhver_attribut ) er alt, hvad de fleste brugere kender til. Simpelthen sagt, attributadgang er processen med at opnå et objekt, der er forbundet med et, du allerede har . Det kan se meget simpelt ud for nogen, der bruger Python uden at gå for langt ind i detaljerne. Der sker dog meget bag kulisserne for denne relativt simple proces.

Hvad er _dict_?

Hvert modul har en unik egenskab kaldet __dikt__. Denne ordbog indeholder symboltabellen for modulet . Et elements (skrivbare) egenskaber gemmes i en ordbog eller det andet kortlægningsobjekt.

For at sige det enkelt har hvert objekt i Python en egenskab, der er angivet med symbolet __dict__ . Desuden har dette objekt alle egenskaber, der er specificeret for det. Et andet navn for __dict__ er kortlægningsproxy objekt. Vi kan bruge ordbogen via anvender egenskaben __dict__ til et klasseobjekt.

csv-fil læs java

Syntaks:

 object.__dict__ 

Eksempel:

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

Produktion:

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

Eksempel 2:

Dette eksempel vil vise, at ved hjælp af __dict__ attribut , man kunne oprette en ordbog ud fra ethvert objekt:

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

Produktion:

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

Eksempel 3:

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

Produktion:

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

Brug af ordbog uden brug af __dict__ i Python:

Oprettelse af en ordbog:

I Python kan en ordbog laves ved at vedlægge en liste over poster inden for krøllede parenteser og adskille dem med et komma . Ordbog gemmer værdipar, hvor et parelement er nøglen og et andet er dens Nøgle:værdi . I kontrast til nøgler, hvilken kan ikke gentages og skal være uforanderlige værdier i ordbøger kan være af enhver type data og kan duplikeres .

Elementerne er adskilt af kommaer , hver nøgle adskilles fra dens værdi med et kolon (:), og hele strukturen er indeholdt i krøllede beslag . En ordbog, der er fuldstændig blottet for alle ord, er skrevet som følger: {} .

Nøglerne til ordbogen skal være uforanderlig , såsom heltal, tupler eller strenge , selvom værdierne kan være af enhver type. I Python-ordbøger betragtes det samme nøglenavn, stavet forskelligt, som en særskilt nøgle. Vær venligst opmærksom på det ordbogsnøgler skelner mellem store og små bogstaver ; nøgler med det samme navn, men forskellige store og små bogstaver, vil blive håndteret anderledes.

Eksempel:

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

Produktion:

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

Det indbygget metode dict() giver også mulighed for oprettelse af ordbøger . Simpelthen at sætte to krøllede seler {} sammen vil resultere i en tom ordbog .

Eksempel:

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

Produktion:

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

Kompleksiteter for at oprette en ordbog:

  • Tidskompleksitet: O(længde(dikt))
  • Rumkompleksitet: På)

Indlejrede ordbøger:

Det er en form for ordbog, hvor en eller flere end en nøgler har en ordbog knyttet til sig som en værdi af nøglen.

Eksempel:

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

Produktion:

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

Tilføjelse af elementer til en ordbog:

Der er flere metoder til at tilføje elementer til en Python-ordbog. Ved at angive værdien og nøglen sammen, f.eks. Dict[Key] = 'Værdi', én værdi kan tilføjes til en ordbog ad gangen. Bruger indbygget update() funktion , kan man ændre en eksisterende værdi i en ordbog. En eksisterende ordbog kan også udvides med indlejrede nøgleværdier .

Bemærk: Når du tilføjer en værdi, opdateres værdien, hvis nøgle-værdi-kombinationen allerede eksisterer. Hvis ikke, tilføjes en ny nøgle og værdi til ordbogen.

Eksempel:

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

Produktion:

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

Kompleksiteter for at tilføje elementer til en ordbog:

  • Tidskompleksitet: O(1)/O(n)
  • Rumkompleksitet: O(1)

Adgang til ordbogselementer:

En ordbog beskæftiger nøgler , hvorimod andre datatyper kræver indeksering for at hente værdier. Nøgler kan bruges sammen med get() funktion eller inden for firkantede parenteser [].

I tilfælde af at en nøglen kan ikke findes i ordbogen, KeyError er produceret hvis vi bruger firkantede parenteser []. På den anden side, hvis nøglen ikke kan lokaliseres get()-funktionen returnerer Ingen.

Eksempel:

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

Produktion:

 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 

Kompleksiteter for at få adgang til elementer i en ordbog:

  • Tidskompleksitet: O(1)
  • Rumkompleksitet: O(1)

Adgang til en indlejret ordbogs element:

Vi kan tage ved hjælp af indeksering [] teknik for at få værdien af ​​en eksisterende nøgle i indlejret ordbog .

Eksempel:

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

Produktion:

 {3: 'JavatPoint'} JavatPoint Website 

Indbyggede ordbogsmetoder:

clear():

Funktionen dict.clear() eliminerer hvert nøgleværdi-par fra ordbogen.

kopi() :

EN fladere kopi af ordbogen returneres af dict.copy() metoden.

fromkeys():

Brug af den medfølgende iterable (streng, liste, sæt eller tuple) som nøgler og den angivne værdi, funktionen dict.fromkeys() opretter en ny ordbog .

få():

Det her giver den tilknyttede værdi med den givne nøgle.

items():

EN ordbogsvisningsobjekt , der tilbyder en dynamisk præsentation af ordbogselementerne som en liste over nøgleværdi-par er returneret af funktionen dict.items(). Når ordbogen er opdateret, dette visningsobjektet er også opdateret .

dict.keys():

Funktionen dict.keys() returnerer et ordbogsvisningsobjekt med ordbogens liste over nøgler.

sammenligne i java

pop():

Det her returnerer nøglens værdi efter at have fjernet den . Hvis der mangler en nøgle i ordbogen, kaster den enten en KeyError eller returnerer standard værdi hvis der blev leveret en.

drink():

Det her fjerner et element fra ordbogen og returnerer en tupel af (nøgle, værdi) par. Det Sidst ind først ud (LIFO) sekvens bruges til at returnere par.

sæt standard() :

Det her returnerer ordbogens værdi for den givne nøgle . Hvis nøglen ikke kan findes, skal nøglen med den medfølgende standard værdi er tilføjet. Det sætter sig Ingen som standard værdi hvis den ikke leveres.

værdier():

Det ordbogsvisningsobjekt, der tilbyder en dynamisk visning af hver værdi, som er findes i ordbogen, returneres af funktionen dict.values(). Når ordbogen er opdateret, dette visningsobjektet er også opdateret .

update():

EN ordbog eller enhver iterabel med nøgleværdi-par , såsom en tupel, kan opdateres ved hjælp af dict.update()-funktionen.

Eksempel:

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

Produktion:

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

Forskel mellem en ordbog og en liste:

Datastrukturer som f.eks liste og en ordbog er grundlæggende uens. An bestilt serie af varer kan opbevares i en liste så vi kan indeksere det eller iterere over det. Lister kan også ændres, selv efter at de allerede er blevet genereret, da de er en udskiftelig type. Det Python ordbog er en nøgleværdi opbevaring og en implementering af en hash tabel . Det følger ikke nogen bestemt sekvens og kræver hashbare nøgler. Derudover er den hurtig til nøgleopslag.

EN listens elementer indeholder følgende funktioner:

  • Medmindre de specifikt ombestilles, vil de beholde deres nuværende rækkefølge (for eksempel ved at sortere listen).
  • De kan være af hvilken som helst type, eller endda en kombination af slags .
  • Gennem numeriske (nulbaserede) indekser, kan vi få adgang til dem.

Karakteristika ved ordbog elementer er som følger:

  • Hver post har en værdi og en nøgle .
  • Ordrer er ikke berettiget .
  • Nøgleværdierbruges til at få adgang til elementer.Enhver hashtabel type (bortset fra en diktat)kan bruges til nøgleværdier, og typer kan kombineres.Enhver form for værdiinklusive andre diktater, er tilladt , og typer kan kombineres.

Anvendelse:

Vi bruger en ordbog hvis vi har en sæt af forskellige nøgler, der svarer til værdier , men a liste når vi har en bestilt gruppe af ting .

Konklusion:

  • På et computersprog, ordbøger er en slags datastruktur, der bruges til at opbevare information det hænger på en eller anden måde sammen.
  • Hvert modul har en unik egenskab kaldet __dikt__.
  • __dikt__ indeholder symboltabellen for modulet .
  • Et elements egenskaber er gemt i en kortlægningsobjekt.
  • Hvert objekt i Python har en egenskab, der er angivet med symbolet __dict__ .
  • Et andet navn for __dict__ er også kendt som mappingproxy objekt.
  • De to komponenter i en Python-ordbog kaldes Nøgler og værdier .
  • Du modtager muligvis ikke dine data tilbage i samme rækkefølge, som du indtastede dem, da ordbøger ikke opbevarer deres data i nogen bestemt rækkefølge.
  • Nøgler vil bestå af blot en ting.
  • Værdier kan være heltal, lister, lister inde i lister , etc.
  • Der kan ikke være mere end én indtastning pr. nøgle (ingen duplikatnøgle er tilladt)
  • Nøglerne til ordbogen skal være uforanderlig , såsom heltal, tupler eller strenge , selvom værdierne kan være af enhver type.
  • Ordbog nøgler skelner mellem store og små bogstaver ; i Python-ordbøger betragtes det samme nøglenavn, stavet forskelligt, som en særskilt nøgle .