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 .
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 .
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 .