Piton

Python defaultdict

Python defaultdict

A Python számos beépített adatstruktúrát kínál, például listákat, sorrendeket és szótárakat az adatok hatékony mentéséhez és kezeléséhez. A szótárak egyszerű módot kínálnak az adatok kulcs-érték párként történő mentésére. A kulcs indexként működik, és adatok lekérésére szolgál. A kulcsoknak egyedieknek és megváltoztathatatlannak kell lenniük a szótárban. A kulcsok többnyire karakterláncok és egészek, bár egy kulcs értéke bármilyen típusú lehet, például egész szám, karakterlánc, lebegőpontos vagy komplex szám. Eközben egy szótár tartalmazhat gyűjteményt, például listát, duplát vagy valamilyen más típusú szótárt. Egy szótár a Pythonban egy göndör zárójelek segítségével jön létre, amelyben az egyes kulcs-érték párokat vessző választja el.

Mi van, ha megpróbál elérni vagy módosítani egy adott kulcsot egy nem létező szótárban? Nos, ebben az esetben a Python tolmács felveti a „KeyError” hibát és leállítja a program végrehajtását.

Nézzünk meg egy példát a „KeyError” hibára.

# szótár létrehozása
my_dict = 1: "Hello", 2: "Welcome", 3: "LinuxHint"
# nem létező kulcs elérése
my_dict [4]

Kimenet

A hiba kezeléséhez a Python megadja az defaultdict típust, egy szótárosztályt, amely a gyűjtemény modulban található. Ez a cikk részletesen ismerteti a Python alapértelmezett diktátumát.

Magyarázat és példák az alapértelmezettre

Az defaultdict a Python szótár alternatívája. Szótár típusú objektumokat ad vissza. Az alapértelmezett diktálás a dict egyik alosztálya. Hiányzó kulcs esetén a „KeyError” hiba felvetése helyett az alapértelmezett értéket a nem létező kulcs adja meg. A defaultdict szintaxisa a következő:

defaultdict (default_factory)

Az defaultdict függvény argumentumként veszi az default_factory paramétert. A default_factory függvény visszaadja a definiált defaultdict alapértelmezett értékét. Ha megpróbálunk elérni vagy módosítani egy hiányzó kulcsot, akkor az default_factory függvény eredményül adja az alapértelmezett értéket. Ha hiányzik az default_factory függvény, akkor az defaultdic „KeyError” hibát vet fel, ha hiányzik kulcs.

Először a Python szkriptünkben implementálunk egy defaultdic-et a meglévő és a hiányzó kulcsok eléréséhez.

#importálja az alapértelmezett beállítást a gyűjtemény modulból
gyűjteményekből importálja az alapértelmezett beállítást
#defining definiálja az alapértelmezett értéket
def my_func ():
print ("A kulcs nincs meghatározva")
# defualtdict létrehozása
# a my_func () átadása az defaultdict argumentumaként
my_dict = defaultdict (my_func)
#definiálja a kulcsokat és értékeket
my_dict [1] = "Üdvözlet"
my_dict [2] = "Üdvözlet"
my_dict [3] = "LinuxHint"
# értékek elérése kulcsokkal
nyomtatás (my_dict [1])
nyomtatás (my_dict [2])
nyomtatás (my_dict [3])
# a hiányzó vagy nem definiált kulcs elérése
my_dict [4]

Kimenet

A [4] a hiányzó kulcs. Tehát a „KeyError” hiba felvetése helyett meghívja az default_factory függvényt, amely visszaadja az alapértelmezett értéket.


Az anonim függvényként ismert lambda függvény szintén használható alapértelmezett_gyári paraméterként.

Ezután végrehajtjuk a lambda függvényt, és argumentumként átadjuk az defaultdict-nek.

#importálja az alapértelmezett beállítást a gyűjtemény modulból
gyűjteményekből importálja az alapértelmezett beállítást
# defualtdict létrehozása
# a Lamnda függvény átengedése az defaultdict argumentumaként
my_dict = defaultdict (lambda: "A kulcs nincs meghatározva")
# meghatározza a kulcsokat és értékeket
my_dict [1] = "Üdvözlet"
my_dict [2] = "Üdvözlet"
my_dict [3] = "LinuxHint"
# értékek elérése kulcsokkal
nyomtatás (my_dict [1])
nyomtatás (my_dict [2])
nyomtatás (my_dict [3])
# a hiányzó vagy nem definiált kulcs elérése
nyomtatás (my_dict [4])

Az defaultdict meghívja az default_factory-t az alapértelmezett érték megadásához, de a __missing () __ függvény adja meg az alapértelmezett értéket. A __missing () __ függvény a Python beépített függvénye, amely az default_factory paramétert veszi argumentumként. Ha az default_factory paraméter nincs meghatározva, akkor a __missing () __ függvény felveti a „KeyError” hibát.

Itt a __missing () __ függvényt fogjuk használni a Python szkriptünkben.

#importálja az alapértelmezett beállítást a gyűjtemény modulból
gyűjteményekből importálja az alapértelmezett beállítást
#defining definiálja az alapértelmezett értéket
def my_func ():
print ("A kulcs nincs meghatározva")
# defualtdict létrehozása
# a my_func () átadása az defaultdict argumentumaként
my_dict = defaultdict (my_func)
# meghatározza a kulcsokat és értékeket
my_dict [1] = "LinuxHint"
# értékek elérése kulcsokkal
nyomtatás (my_dict [1])
# a hiányzó vagy nem definiált kulcs elérése
my_dict.__ hiányzik __ (2)

Kimenet

A lista és az int osztályok alapértelmezett_gyári paraméterként is használhatók a defaultdict mellett.

Lista alapértelmezett_gyári paraméterként

Az defaultdict a listaértékekkel jön létre, amikor a listasorozat átad egy default_factory paramétert.

#importálja az alapértelmezett beállítást a gyűjtemény modulból
a gyűjteményekből importálja az alapértelmezett beállítást
# default defict meghatározása
# listanév átadása alapértelmezett gyárként
my_dict = defaultdict (lista)
i-re a (7) tartományban:
my_dict [i].függelék (i)
# az értékek nyomtatása
nyomtatás (my_dict)

Kimenet

A kimenet a lista értékeit mutatja. Amint láthatja, létrehozták a kulcsot és értékeket tartalmazó alapértelmezett diktátumot.

Egészek, mint alapértelmezett_gyári paraméter

Ha az int osztályt átadjuk default_factory paraméterként, akkor létrehozhatunk egy defaultdict-et, amely csak egész számokat tartalmaz. Létrehozzuk az egész számok listáját, majd elmentjük az defaultdict-be.

#importálja az alapértelmezett beállítást a gyűjtemény modulból
gyűjteményekből importálja az alapértelmezett beállítást
# default defict definiálása
# int osztály átadása alapértelmezett gyárként
my_dict = defaultdict (int)
# egész számok listájának létrehozása
my_list = [1,2,3]
én a listámban:
my_dict [i] + = 1
# az értékek nyomtatása
nyomtatás (my_dict)

Kimenet

Az adott kimenetben a kettőspont (:) előtti egész értékek kulcsok, míg a kettőspont utáni egész számok értékek.

Következtetés

A dafualtdict egy szótárszerű osztály, amely a gyűjtemény modulban található. Úgy működik, mint egy Python szótár, de nem dob fel „KeyError” -t, ha egy kulcs nem található. Ez a cikk különféle példákkal részletesen ismerteti az alapértelmezett beállítást.

Az egérkattintások emulálása az egérrel a Clickless Mouse használatával a Windows 10 rendszerben
Ha az egeret vagy a billentyűzetet nem megfelelő testtartásban, túlzott használat mellett használhatja, számos egészségügyi problémát okozhat, beleért...
Ezekkel az ingyenes eszközökkel adja hozzá az egérmozdulatokat a Windows 10 rendszerhez
Az elmúlt években a számítógépek és az operációs rendszerek nagymértékben fejlődtek. Volt idő, amikor a felhasználóknak parancsokkal kellett navigálni...
Az egér mozgásának vezérlése és kezelése több monitor között a Windows 10 rendszerben
Dual Display Mouse Manager lehetővé teszi az egér mozgásának vezérlését és konfigurálását több monitor között, lassítva annak mozgását a határ közeléb...