Python kalboje žodynas yra netvarkingas duomenų reikšmių rinkinys tai galėtų būti naudojami duomenų reikšmėms saugoti panašiai kaip žemėlapyje. Skirtingai nuo kitų duomenų tipų, kuriuose gali būti tik viena elemento reikšmė, žodynuose taip pat gali būti a raktas: vertė pora. Norėdami sudaryti žodyną efektyvesnis Siūloma rakto vertė.
Kai tai susiję su prieigos priskyrimu, taškas '.' (kaip ir x.bet_attribute ) yra viskas, ką dauguma vartotojų žino. Paprasčiausiai Prieiga prie atributo yra objekto, kuris yra prijungtas prie jūsų jau turimo, gavimo procesas . Tai gali atrodyti labai paprasta tiems, kurie naudoja Python, nesigilindami į specifiką. Tačiau šio gana paprasto proceso užkulisiuose vyksta daug dalykų.
Kas yra _diktas_?
Kiekvienas modulis turi unikalią savybę, vadinamą __diktuoti__. Šis žodynas yra modulio simbolių lentelė . Elemento (įrašomos) charakteristikos saugomos žodyne arba kitame atvaizdavimo objekte.
Paprasčiau tariant, kiekvienas Python objektas turi a savybė, kuri pažymėta simboliu __dict__ . Be to, šis objektas turi visas jam nurodytas savybes. Kitas __dict__ pavadinimas yra kartografavimo proxy objektas. Žodyną galime naudoti per taikant __dict__ savybę į klasės objektą.
katalogą linux komandose
Sintaksė:
object.__dict__
Pavyzdys :
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__)
Išvestis:
{'identity': 'Lion', 'age': '10'}
2 pavyzdys:
Šis pavyzdys parodys, kad naudojant __dict__ atributas , galima sukurti žodyną iš bet kurio objekto:
# 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__)
Išvestis:
The Dictionary from object fields belongs to the class Flowers : {'Rose': 'red', 'Lily': 'white', 'Lotus': 'pink'}
3 pavyzdys:
def funct(): pass funct.practice = 1 print(funct.__dict__) class PracticeClass: x = 1 def practice_function(self): pass print(PracticeClass.__dict__)
Išvestis:
{'practice': 1} {'__module__': '__main__', 'x': 1, 'practice_function': , '__dict__': , '__weakref__': , '__doc__': None}
Žodyno naudojimas nenaudojant __dict__ Python:
Žodyno kūrimas:
Python programoje žodynas gali būti sudarytas įtraukiant a įrašų sąrašas garbanotuose skliaustuose ir atskiriant juos kableliu . Žodyne saugomos reikšmių poros, kur vienas poros elementas yra raktas, o kitas – jo Raktas: vertė . Priešingai nei raktai, kurios negali pasikartoti ir turi būti nekintamos, vertybės žodynuose gali būti bet kokio tipo duomenų ir gali būti dubliuojami .
Elementai yra atskirti kableliais , kiekvienas raktas skiriasi nuo jo vertės dvitaškiu (:), ir visa struktūra yra joje garbanoti skliaustai . Žodynas, kuriame visiškai nėra žodžių, parašytas taip: {} .
Žodyno klavišai turi būti nekintamas , toks kaip sveikieji skaičiai, eilutės arba eilutės , nors reikšmės gali būti bet kokios rūšies. Python žodynuose tas pats rakto pavadinimas, parašytas skirtingai, laikomas atskiras raktas. Atkreipkite dėmesį į tai žodyno klavišuose skiriamos didžiosios ir mažosios raidės ; raktai su panašiu pavadinimu, bet skirtingomis raidėmis bus tvarkomi skirtingai.
Pavyzdys :
# 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)
Išvestis:
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 Integruotas metodas dict() taip pat leidžia žodynų kūrimas . Paprasčiausiai dedant dvi garbanotos petnešos {} kartu sukels an tuščias žodynas .
Pavyzdys :
# 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)
Išvestis:
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'}
Žodyno kūrimo sudėtingumas:
- Laiko sudėtingumas: O (ilgis (diktas))
- Erdvės sudėtingumas: O(n)
Įdėti žodynai:
Tai žodyno forma, kurioje vienas ar daugiau nei vienas raktai turi žodyną, pridedamą kaip reikšmę rakto.
Pavyzdys :
# 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)
Išvestis:
Creating a Nested Dictionary : {1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}}
Elementų įtraukimas į žodyną:
Yra keli elementų pridėjimo būdai į Python žodyną. Pavyzdžiui, nurodydami vertę ir raktą kartu, Dict[Key] = 'Vertė', į žodyną vienu metu galima pridėti vieną reikšmę. Naudojant įmontuota atnaujinimo () funkcija , galima keisti esamą reikšmę žodyne. Esamas žodynas taip pat gali būti išplėstas įdėtos raktų reikšmės .
Pastaba: pridedant vertę, ji atnaujinama, jei rakto ir vertės derinys jau yra. Jei ne, į žodyną įtraukiamas naujas raktas ir reikšmė.
Pavyzdys :
# 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)
Išvestis:
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'}}}
Elementų įtraukimo į žodyną sudėtingumas:
- Laiko sudėtingumas: O(1)/O(n)
- Erdvės sudėtingumas: O(1)
Prieiga prie žodyno elementų:
Žodynas dirba raktai , o kitiems duomenų tipams reikia indeksuoti, kad būtų galima gauti reikšmes. Raktus galima naudoti su get() funkcija arba laužtiniuose skliaustuose [].
Tuo atveju, jei a rakto nepavyko rasti žodyne, Sukurta KeyError jei naudosime laužtiniai skliaustai []. Kita vertus, jei rakto nepavyksta rasti, Funkcija get() grąžina Nėra.
Pavyzdys :
# 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))
Išvestis:
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
Žodyno elementų prieigos sudėtingumas:
- Laiko sudėtingumas: O(1)
- Erdvės sudėtingumas: O(1)
Prieiga prie įdėto žodyno elemento :
Galime pasitelkti į pagalbą indeksavimo [] technika gauti esamo rakto reikšmę įdėtas žodynas .
Pavyzdys :
# 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.'])
Išvestis:
tat pilna forma
{3: 'JavatPoint'} JavatPoint Website
Integruoto žodyno metodai:
aišku () :
Funkcija dict.clear() pašalina kiekvieną rakto-reikšmių porą iš žodyno.
kopija () :
A seklesnis žodyno egzempliorius grąžinamas dict.copy() metodu.
fromkeys() :
Naudojant pateiktą kartojimą (eilutė, sąrašas, rinkinys arba eilė) kaip klavišus ir nurodytą reikšmę, funkcija dict.fromkeys() sukuria naują žodyną .
gauti () :
Tai suteikia susijusią vertę su duotu raktu.
daiktai () :
A žodyno peržiūros objektas , kuris siūlo dinamišką žodyno elementų pateikimą kaip raktų ir reikšmių porų sąrašą yra grąžinamas pagal funkciją dict.items(). Atnaujinus žodyną, š peržiūros objektas taip pat atnaujinamas .
poeilutės metodas java
dict.keys() :
Funkcija dict.keys() grąžina žodyno peržiūros objektą su žodynu raktų sąrašas.
pop() :
Tai grąžina rakto reikšmę jį pašalinus . Jei žodyne trūksta rakto, jis arba išmeta a Key Error arba grąžina Numatytoji reikšmė jei toks būtų suteiktas.
gerti() :
Tai pašalina vieną elementą iš žodyno ir grąžina eilutę (rakto, vertės) porų. The Paskutinis pirmas išėjimas (LIFO) seka naudojama grįžtančioms poroms.
nustatyti numatytąjį() :
Tai grąžina duoto rakto žodyno reikšmę . Jei rakto nepavyksta aptikti, raktas su pridedamu Numatytoji reikšmė pridedamas. Jis nustato Nė vienas kaip ir Numatytoji reikšmė jei jis nepateikiamas.
reikšmės() :
The žodyno peržiūros objektas, siūlantis dinaminį vaizdą kiekvienos vertės, kuri yra yra žodyne, grąžinamas pagal funkciją dict.values(). Atnaujinus žodyną, š peržiūros objektas taip pat atnaujinamas .
atnaujinti () :
A žodynas arba bet koks kartojamas su raktų ir reikšmių poromis , pvz., eilutė, galima atnaujinti naudojant dict.update() funkciją.
Pavyzdys :
# 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())
Išvestis:
{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++'])
Skirtumas tarp žodyno ir sąrašo:
Duomenų struktūros, tokios kaip a sąrašą ir žodyną yra iš esmės nepanašūs. An užsakytų prekių serijų galima laikyti a sąrašą kad galėtume jį indeksuoti arba kartoti. Sąrašai taip pat gali būti keičiami net tada, kai jie jau buvo sugeneruoti, nes jie yra keičiamo tipo. The Python žodynas yra rakto vertės saugykla ir a įgyvendinimas maišos lentelė . Ji nesilaiko jokios konkrečios sekos ir reikalauja maišos raktų. Be to, ji greitai atlieka pagrindines paieškas.
A sąrašą elementai turi šias funkcijas:
- Nebent specialiai persakyta, jie išlaikyti esamą tvarką (pavyzdžiui, rūšiuojant sąrašą).
- Jie gali būti bet kokio tipo arba net a rūšių derinys .
Savybės žodynas elementai yra tokie:
- Kiekvienas įrašas turi a vertė ir raktas .
- Užsakymai yra nėra garantuotas .
Naudojimas:
Mes naudojame a žodynas jei turime a skirtingų raktų, atitinkančių reikšmes, rinkinys , bet a sąrašą kai turime an užsakyta daiktų grupė .
Išvada:
- Kompiuterio kalba, žodynai yra tam tikra duomenų struktūra, naudojama informacijai laikyti tai kažkaip susiję.
- Kiekvienas modulis turi unikalią savybę, vadinamą __diktuoti__.
- __diktuoti__ yra modulio simbolių lentelė .
- Elemento savybės saugomos a kartografavimo objektas.
- Kiekvienas Python objektas turi a savybė, kuri pažymėta simboliu __dict__ .
- Kitas __dict__ pavadinimas taip pat žinomas kaip kartografavimo proxy objektas.
- Du Python žodyno komponentai vadinami Raktai ir vertybės .
- Tu gali ir negauti jūsų duomenys grąžinami ta pačia tvarka, kokia įvedėte, nes žodynai nesaugo jų duomenų jokia konkrečia tvarka.
- Raktus sudarys tik vienas dalykas.
- Vertybės gali būti sveikieji skaičiai, sąrašai, sąrašai sąrašuose ir kt.
- Negali būti daugiau nei vienas įrašas kiekvienam raktui (neleidžiama kopijuoti rakto)
- Žodyno raktai turi būti nekintamas , toks kaip sveikieji skaičiai, eilutės arba eilutės , nors reikšmės gali būti bet kokios rūšies.
- Žodynas klavišuose skiriamos didžiosios ir mažosios raidės ; Python žodynuose tas pats rakto pavadinimas, parašytas skirtingai, laikomas a atskiras raktas .