Python valodā vārdnīca ir nesakārtota datu vērtību kopa tas varētu būt izmanto datu vērtību glabāšanai līdzīgi kā karte. Atšķirībā no citiem datu veidiem, kas var ietvert tikai vienu vērtību katram elementam, vārdnīcās var būt arī a atslēga:vērtība pāri. Lai izveidotu vārdnīcu efektīvāks , tiek piedāvāta atslēgas vērtība.
Ja tas attiecas uz piekļuves piešķiršanu, punkts '.' (kā x.any_attribute ) ir viss, ko zina lielākā daļa lietotāju. Vienkārši sakot, atribūtu piekļuve ir tāda objekta iegūšanas process, kas ir savienots ar jums jau esošo objektu . Tas var šķist ļoti vienkārši kādam, kurš izmanto Python, pārāk neiedziļinoties specifikā. Tomēr šī salīdzinoši vienkāršā procesa aizkulisēs notiek daudz.
Kas ir _dict_?
Katram modulim ir unikāls īpašums, ko sauc __dikt__. Šī vārdnīca satur moduļa simbolu tabulu . Vienuma (rakstāmie) raksturlielumi tiek saglabāti vārdnīcā vai citā kartēšanas objektā.
Vienkārši sakot, katram objektam Python ir a īpašums, kas apzīmēts ar simbolu __dict__ . Turklāt šim objektam ir visas tam norādītās īpašības. Vēl viens __dict__ nosaukums ir kartēšanas starpniekserveris objektu. Mēs varam izmantot vārdnīcu caur piemērojot __dict__ rekvizītu uz klases objektu.
Sintakse :
object.__dict__
Piemērs :
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__)
Izvade:
{'identity': 'Lion', 'age': '10'}
2. piemērs:
Šis piemērs parādīs, ka, izmantojot __dict__ atribūts , var izveidot vārdnīcu no jebkura objekta:
# 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__)
Izvade:
The Dictionary from object fields belongs to the class Flowers : {'Rose': 'red', 'Lily': 'white', 'Lotus': 'pink'}
3. piemērs:
def funct(): pass funct.practice = 1 print(funct.__dict__) class PracticeClass: x = 1 def practice_function(self): pass print(PracticeClass.__dict__)
Izvade:
{'practice': 1} {'__module__': '__main__', 'x': 1, 'practice_function': , '__dict__': , '__weakref__': , '__doc__': None}
Vārdnīcas izmantošana, neizmantojot __dict__ Python:
Vārdnīcas izveide:
Python vārdnīcu var izveidot, pievienojot a ierakstu saraksts cirtainajās iekavās un atdalot tos ar komatu . Vārdnīca saglabā vērtību pārus, kur viens pāra elements ir atslēga, bet otrs ir tā Atslēga: vērtība . Pretstatā atslēgas, kuras nevar atkārtoties, un tām jābūt nemainīgām, vērtībām vārdnīcās var būt jebkura veida dati, un tos var dublēt .
Elementi ir atdalītas ar komatiem , katra atslēga atšķiras no tās vērtības ar kolu (:), un visa struktūra ir ietverta cirtaini iekavas . Vārdnīca, kurā pilnīgi nav vārdu, ir rakstīta šādi: {} .
Vārdnīcas taustiņiem jābūt nemainīgs , piemēram, veseli skaitļi, korteži vai virknes , lai gan vērtības var būt jebkura veida. Python vārdnīcās viens un tas pats atslēgas nosaukums, kas rakstīts atšķirīgi, tiek uzskatīts par atšķirīga atslēga. Lūdzu, ņemiet to vērā vārdnīcas atslēgas ir reģistrjutīgas ; atslēgas ar līdzīgu nosaukumu, bet atšķirīgu reģistru tiks apstrādātas atšķirīgi.
Piemērs :
# 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)
Izvade:
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]}
The iebūvētā metode dict() pieļauj arī vārdnīcu veidošana . Vienkārši liekot divas cirtainas lencēs {} kopā radīs an tukša vārdnīca .
Piemērs :
# 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)
Izvade:
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'}
Sarežģītības vārdnīcas izveidei:
- Laika sarežģītība: O (garums (dikts))
- Kosmosa sarežģītība: O(n)
Ligzdotas vārdnīcas:
Tā ir vārdnīcas forma, kurā ir viena vai vairākas taustiņiem kā vērtība ir pievienota vārdnīca no atslēgas.
Piemērs :
# 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)
Izvade:
Creating a Nested Dictionary : {1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}}
Elementu pievienošana vārdnīcai:
Tur ir vairākas elementu pievienošanas metodes uz Python vārdnīcu. Piemēram, norādot vērtību un atslēgu kopā, Dict[Key] = 'Vērtība', vārdnīcai vienlaikus var pievienot vienu vērtību. Izmantojot iebūvēta atjaunināšanas () funkcija , var modificēt esošu vērtību vārdnīcā. Esošu vārdnīcu var arī paplašināt ar ligzdotas atslēgas vērtības .
Piezīme. Pievienojot vērtību, vērtība tiek atjaunināta, ja atslēgas-vērtības kombinācija jau pastāv. Ja nē, vārdnīcai tiek pievienota jauna atslēga un vērtība.
Piemērs :
# 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)
Izvade:
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'}}}
Sarežģītības elementu pievienošanai vārdnīcai:
- Laika sarežģītība: O(1)/O(n)
- Kosmosa sarežģītība: O(1)
Piekļuve vārdnīcas elementiem:
Nodarbina vārdnīca atslēgas , savukārt citiem datu veidiem ir nepieciešama indeksēšana, lai izgūtu vērtības. Atslēgas var izmantot ar get() funkcija vai kvadrātiekavās [].
Gadījumā, ja a atslēgu nevar atrast vārdnīcā, Tiek radīta atslēgas kļūda ja lietojam kvadrātiekavās []. No otras puses, ja atslēgu nevar atrast, Funkcija get() atgriež Nav.
Piemērs :
# 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))
Izvade:
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
Sarežģītības, lai piekļūtu vārdnīcas elementiem:
- Laika sarežģītība: O(1)
- Kosmosa sarežģītība: O(1)
Piekļuve ligzdotas vārdnīcas elementam:
Mēs varam ņemt palīdzību no indeksēšanas [] tehnika lai iegūtu esošās atslēgas vērtību ligzdota vārdnīca .
Piemērs :
# 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.'])
Izvade:
{3: 'JavatPoint'} JavatPoint Website
Iebūvētās vārdnīcas metodes:
skaidrs () :
Funkcija dict.clear() novērš katru atslēgas vērtību pāri no vārdnīcas.
kopija () :
A vārdnīcas seklāks eksemplārs tiek atgriezta ar metodi dict.copy().
fromkeys() :
Izmantojot komplektācijā iekļauto atkārtojumu (virkne, saraksts, kopa vai virkne) kā taustiņus un norādīto vērtību, funkcija dict.fromkeys() izveido jaunu vārdnīcu .
gūt() :
Šis dod saistīto vērtību ar doto atslēgu.
preces () :
A vārdnīcas skata objekts , kas piedāvā dinamisku vārdnīcas vienumu prezentāciju kā atslēgu un vērtību pāru sarakstu tiek atgriezta ar funkciju dict.items(). Kad vārdnīca tiek atjaunināta, šis tiek atjaunināts arī skata objekts .
dict.keys() :
Funkcija dict.keys() atgriež vārdnīcas skata objektu ar vārdnīcu atslēgu saraksts.
pop() :
kā pārvērst char par virkni
Šis atgriež atslēgas vērtību pēc tās noņemšanas . Ja vārdnīcā trūkst atslēgas, tā vai nu izmet a KeyError vai atgriež noklusējuma vērtība ja tāds būtu nodrošināts.
dzēriens ():
Šis noņem vienu vienumu no vārdnīcas un atgriež virkni no (atslēgas, vērtības) pāriem. The Last in First Out (LIFO) secība tiek izmantota pāru atgriešanai.
setdefault() :
Šis atgriež vārdnīcas vērtību dotajai atslēgai . Ja atslēgu nevar atrast, atslēgu ar komplektācijā iekļauto noklusējuma vērtība ir pievienots. Tas nosaka Nav kā noklusējuma vērtība ja tas netiek piegādāts.
vērtības() :
The vārdnīcas skata objekts, kas piedāvā dinamisku skatu no katras vērtības, kas ir atrodas vārdnīcā, tiek atgriezts ar funkciju dict.values(). Kad vārdnīca tiek atjaunināta, šis tiek atjaunināts arī skata objekts .
Atjaunināt() :
A vārdnīca vai jebkura atkārtojama ar atslēgu-vērtību pāriem , piemēram, rindkopa, var atjaunināt izmantojot funkciju dict.update().
Piemērs :
# 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())
Izvade:
{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++'])
Atšķirība starp vārdnīcu un sarakstu:
Datu struktūras, piemēram, a saraksts un vārdnīca ir principiāli atšķirīgi. An pasūtītas preču sērijas var uzglabāt a sarakstu lai mēs varētu tajā indeksēt vai atkārtot to. Sarakstus var mainīt arī pēc tam, kad tie jau ir ģenerēti, jo tie ir maināmi. The Python vārdnīca ir atslēgu vērtību glabāšana un a īstenošana hash tabula . Tam netiek ievērota noteikta secība, un tai ir nepieciešamas jauktas atslēgas. Turklāt ar to var ātri meklēt atslēgu.
A sarakstu elementi satur šādas funkcijas:
- Ja vien nav īpaši pārkārtoti, viņi saglabāt savu pašreizējo kārtību (piemēram, kārtojot sarakstu).
- Tie var būt jebkura veida vai pat a veidu kombinācija .
Raksturlielumi vārdnīca elementi ir šādi:
- Katram ierakstam ir a vērtība un atslēga .
- Pasūtījumi ir nav garantēta .
Lietošana:
Mēs izmantojam a vārdnīca ja mums ir a atšķirīgu atslēgu kopa, kas atbilst vērtībām , bet a sarakstu kad mums ir pasūtīta lietu grupa .
Secinājums:
- Datorvalodā, vārdnīcas ir sava veida datu struktūra, ko izmanto informācijas glabāšanai tas ir kaut kā saistīts.
- Katram modulim ir unikāls īpašums, ko sauc __dikt__.
- __dikt__ satur moduļa simbolu tabulu .
- Elementa īpašības tiek saglabātas a kartēšanas objekts.
- Katram Python objektam ir a īpašums, kas apzīmēts ar simbolu __dict__ .
- Cits vārds __dict__ ir zināms arī kā kartēšanas starpniekservera objekts.
- Tiek saukti divi Python vārdnīcas komponenti Atslēgas un vērtības .
- Tu varētu nesaņemt savus datus atpakaļ tādā pašā secībā, kādā tos ievadījāt, jo vārdnīcas savus datus neglabā nevienā noteiktā secībā.
- Atslēgas sastāvēs tikai no viena lieta.
- Vērtības var būt veseli skaitļi, saraksti, saraksti sarakstos utt.
- Nevar būt vairāk kā viens ieraksts katrai atslēgai (nav atļauts dublēt atslēgas)
- Vārdnīcas taustiņiem jābūt nemainīgs , piemēram, veseli skaitļi, korteži vai virknes , lai gan vērtības var būt jebkura veida.
- Vārdnīca taustiņi ir reģistrjutīgi ; Python vārdnīcās viens un tas pats atslēgas nosaukums, kas rakstīts atšķirīgi, tiek uzskatīts par a atšķirīga atslēga .