logo

__dict__ Pythonban

Pythonban a szótár egy az adatértékek rendezetlen halmaza ez lehet adatértékek tárolására szolgál hasonlóan a térképhez. Más adattípusokkal ellentétben, amelyek elemenként csak egyetlen értéket tartalmazhatnak, a szótárak tartalmazhatnak a kulcs érték pár. A szótár elkészítéséhez hatékonyabb , Kulcsérték kínált.

Amikor a hozzáférés hozzárendeléséről van szó, a pont '.' (mint a x.any_attribute ) ez minden, amit a felhasználók többsége ismer. Egyszerűen szólva: Az attribútum-hozzáférés egy olyan objektum megszerzésének folyamata, amely a már meglévő objektumhoz kapcsolódik . Ez nagyon egyszerűnek tűnhet annak, aki Pythont használ anélkül, hogy túlságosan belemenne a részletekbe. Ennek a viszonylag egyszerű folyamatnak a színfalai mögött azonban sok minden történik.

modell is

Mi az a _dict_?

Minden modulnak van egy egyedi tulajdonsága, az úgynevezett __dikt__. Ez a szótár tartalmazza a modul szimbólumtáblázatát . Egy elem (írható) jellemzőit egy szótárban vagy más leképezési objektumban tárolják.

Egyszerűen fogalmazva, a Pythonban minden objektum rendelkezik a tulajdonság, amelyet a __dict__ szimbólum jelöl . Ezen túlmenően ennek az objektumnak minden tulajdonsága megvan, amit megadtak neki. A __dict__ másik neve az mappingproxy tárgy. Használhatjuk a szótárt keresztül a __dict__ tulajdonság alkalmazása osztályobjektumhoz.

Szintaxis:

 object.__dict__ 

Példa :

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

Kimenet:

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

2. példa:

Ez a példa bemutatja, hogy a __dict__ attribútum , bármilyen objektumból létrehozhatunk szótárt:

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

Kimenet:

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

3. példa:

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

Kimenet:

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

A szótár használata a __dict__ használata nélkül a Pythonban:

Szótár készítése:

A Pythonban szótár készíthető az a a zárójelben lévő bejegyzések listája és vesszővel elválasztva . A szótár értékpárokat tárol, ahol az egyik pár elem a kulcs, a másik pedig a kulcs Kulcs érték . Szemben kulcsok, melyik nem ismételhető meg, és változhatatlannak kell lennie, értékeknek szótárakban bármilyen típusú adat lehet, és sokszorosítható .

Az elemek azok vesszővel elválasztva , minden kulcs megkülönböztethető az értékétől kettősponttal (:), és az egész szerkezetet tartalmazza kapcsos zárójelek . Egy szótárat, amely teljesen mentes minden szótól, a következőképpen írják: {} .

A szótár kulcsainak kell lenniük változhatatlan , mint például egész számok, sorok vagy karakterláncok , bár az értékek bármilyen típusúak lehetnek. A Python szótárak ugyanazt a kulcsnevet másképp írva tekintik egy külön kulcs. Kérjük, vegye figyelembe A szótár kulcsai megkülönböztetik a kis- és nagybetűket ; a hasonló nevű, de eltérő kis- és nagybetűs billentyűket másképp kezeljük.

Példa :

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

Kimenet:

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

A beépített metódus dict() is lehetővé teszi a szótárak készítése . Egyszerűen fogalmazva két göndör kapcsos zárójel {} együtt eredményez egy üres szótár .

Példa :

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

Kimenet:

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

A szótár létrehozásának bonyolultságai:

  • Időbeli összetettség: O(hosszúság(dikt))
  • A tér összetettsége: Tovább)

Beágyazott szótárak:

Ez egy olyan szótár, amelyben egy vagy több A kulcsokhoz értékként egy szótár is csatolva van a kulcsról.

Példa :

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

Kimenet:

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

Elemek hozzáadása a szótárhoz:

Vannak többféle elem hozzáadásának módja egy Python szótárba. Az érték és a kulcs együttes megadásával pl. Dict[Key] = 'Érték', Egyszerre egy érték adható a szótárhoz. Használni a beépített update() függvény , módosítani lehet egy meglévő értéket a szótárban. Egy meglévő szótár is bővíthető beágyazott kulcsértékek .

Megjegyzés: Érték hozzáadásakor az érték frissül, ha a kulcs-érték kombináció már létezik. Ha nem, akkor új kulcs és érték kerül a szótárba.

Példa :

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

Kimenet:

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

A szótárhoz elemek hozzáadásának bonyolultságai:

  • Időbeli összetettség: O(1)/O(n)
  • A tér összetettsége: O(1)

Hozzáférés a szótár elemeihez:

Egy szótár alkalmaz kulcsok , míg más adattípusok indexelést igényelnek az értékek lekéréséhez. A kulcsok használhatók a get() függvény vagy szögletes zárójelben [].

java lista módszerek

Abban az esetben, ha a kulcs nem található a szótárban, KeyError keletkezik ha használjuk szögletes zárójelek []. Másrészt, ha a kulcs nem található, a get() függvény a None értéket adja vissza.

Példa :

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

Kimenet:

 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 

A szótár elemeinek elérésének bonyolultságai:

  • Időbeli összetettség: O(1)
  • A tér összetettsége: O(1)

Beágyazott szótár elem elérése:

Segítséget vehetünk a indexelés [] technika hogy megkapjuk egy meglévő kulcs értékét a beágyazott szótár .

Példa :

tömblistát rendezni java-ban
 # 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.']) 

Kimenet:

 {3: 'JavatPoint'} JavatPoint Website 

Beépített szótár módszerek:

egyértelmű() :

A dict.clear() függvény kiküszöböl minden kulcs-érték párt a szótárból.

másolat() :

A a szótár sekélyebb példánya a dict.copy() metódus adja vissza.

fromkeys() :

A mellékelt iterable segítségével (karakterlánc, lista, halmaz vagy sor) kulcsként és a megadott érték, a dict.fromkeys() függvény. új szótárt hoz létre .

kap() :

Ez megadja a hozzá tartozó értéket a megadott kulccsal.

tételek() :

A szótár nézet objektum , amely a szótárelemek dinamikus megjelenítését kínálja kulcs-érték párok listájaként visszakerül a dict.items() függvény segítségével. Amikor a szótár frissül, ez nézet objektum is frissül .

dict.keys() :

A dict.keys() függvény szótárnézet objektumot ad vissza a szótárral kulcsok listája.

gimp exportálás jpg formátumban

pop() :

Ez a kulcs eltávolítása után adja vissza a kulcs értékét . Ha egy kulcs hiányzik a szótárból, akkor vagy a-t dob KeyError vagy visszaadja a alapértelmezett érték ha biztosítottak egyet.

ital() :

Ez eltávolít egy elemet a szótárból, és visszaad egy sort (kulcs, érték) párból. A Last In First Out (LIFO) sorozatot használjuk a visszatérő párokhoz.

alapértelmezettre állítás() :

Ez visszaadja a szótár értékét az adott kulcshoz . Ha a kulcsot nem lehet felfedezni, akkor a mellékelt kulcsot alapértelmezett érték hozzáadva. Beállítja Egyik sem mint a alapértelmezett érték ha nem szállítják.

értékek() :

A szótárnézet objektum, amely dinamikus nézetet kínál minden egyes értékről, ami van jelen van a szótárban, visszakerül a dict.values() függvény által. Amikor a szótár frissül, ez nézet objektum is frissül .

frissítés() :

A szótárban vagy bármilyen kulcs-érték páros iterálható formában , például egy sor, frissíthető a dict.update() függvény segítségével.

Példa :

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

Kimenet:

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

A szótár és a lista közötti különbségek:

Az olyan adatstruktúrák, mint a lista és szótár alapvetően különböznek egymástól. An megrendelt cikksorozat tárolható a lista hogy indexelhessünk benne vagy iterálhassunk rajta. A listák akkor is módosíthatók, ha már létrejöttek, mivel ezek változtatható típusok. A Python szótár egy kulcs-érték tárolás és a megvalósítása a hash tábla . Nem követ semmilyen meghatározott sorrendet, és kivonható kulcsokat igényel. Ezenkívül gyors a kulcskereséshez.

A listák Az elemek a következő tulajdonságokat tartalmazzák:

govinda
  • Hacsak nem rendelik újra, akkor megtartják jelenlegi sorrendjüket (például a lista rendezésével).
  • Lehetnek bármilyen típusúak, vagy akár a fajta kombinációja .
  • Numerikus (nulla alapú) indexeken keresztül, elérhetjük őket.

A jellemzői szótár az elemek a következők:

  • Minden bejegyzéshez tartozik egy érték és egy kulcs .
  • A rendelések nem indokolt .
  • Kulcsértékekelemek elérésére szolgálnak.Bármilyen hashable típus (a diktatúrán kívül)kulcsértékekhez használhatók, és a típusok kombinálhatók.Bármilyen érték, beleértve az egyéb diktátumokat is, megengedett , és a típusok kombinálhatók.

Használat:

Használjuk a szótár ha van a értékeknek megfelelő kulcsok készlete , de a lista amikor van egy a dolgok elrendelt csoportja .

Következtetés:

  • Számítógépes nyelven, A szótárak egyfajta adatszerkezet, amelyet információk tárolására használnak ez valahogy összefügg.
  • Minden modulnak van egy egyedi tulajdonsága, az úgynevezett __dikt__.
  • __dikt__ tartalmazza a modul szimbólumtáblázatát .
  • Egy elem tulajdonságait a leképezési objektum.
  • A Pythonban minden objektum rendelkezik egy tulajdonság, amelyet a __dict__ szimbólum jelöl .
  • A __dict__ egy másik neve is ismert mappingproxy objektum.
  • A Python szótár két összetevőjét ún Kulcsok és értékek .
  • te esetleg nem kapja meg az adatait a beviteli sorrendben vissza kell adni, mivel a szótárak nem tárolják az adataikat semmilyen meghatározott sorrendben.
  • A kulcsok csak egy dolog.
  • Az értékek lehetnek egész számok, listák, listákon belüli listák stb.
  • Nem lehet több, mint kulcsonként egy bejegyzés (nem megengedett duplikált kulcs)
  • A szótár kulcsainak kell lenniük változhatatlan , mint például egész számok, sorok vagy karakterláncok , bár az értékek bármilyen típusúak lehetnek.
  • Szótár a billentyűk megkülönböztetik a kis- és nagybetűket ; a Python szótárakban ugyanaz a kulcsnév másképp írva a külön kulcs .