Python

Python defaultdict

Python defaultdict

Python ponúka mnoho vstavaných dátových štruktúr, ako sú zoznamy, n-tice a slovníky, ktoré umožňujú efektívne ukladať a spravovať údaje. Slovníky poskytujú jednoduchý spôsob ukladania údajov ako párov kľúč - hodnota. Kľúč slúži ako index a slúži na načítanie údajov. Kľúče by mali byť jedinečné a nemenné v celom slovníku. Kľúče sú väčšinou reťazce a celé čísla, hoci hodnota kľúča môže byť ľubovoľného typu, napríklad celé číslo, reťazec, číslo s pohyblivou rádovou čiarkou alebo komplexné číslo. Slovník zatiaľ môže obsahovať zbierku, napríklad zoznam, n-ticu alebo iný typ slovníka. Slovník v Pythone je vytvorený pomocou dvojice zložených zátvoriek, v ktorých je každý pár kľúč - hodnota oddelený čiarkou.

Čo ak sa pokúsite získať prístup alebo upraviť konkrétny kľúč v slovníku, ktorý neexistuje? V tomto prípade interpret Pythonu vyvolá chybu „KeyError“ a ukončí vykonávanie programu.

Pozrime sa na príklad chyby „KeyError“.

#vytvorenie slovníka
my_dict = 1: "Dobrý deň", 2: "Vitajte", 3: "LinuxHint"
# prístup ku kľúču, ktorý neexistuje
my_dict [4]

Výkon

Na zvládnutie tejto chyby poskytuje Python typ defaultdict, triedu slovníka, ktorú nájdete v module kolekcie. Tento článok sa podrobne zaoberá predvoleným nastavením Pythonu.

Vysvetlenie a príklady predvoleného rozsudku

Defaultdict je alternatívou slovníka Python. Vráti objekty typu slovníka. Defaultdict je podtrieda dict. V prípade chýbajúceho kľúča sa namiesto výskytu chyby „KeyError“ poskytuje predvolená hodnota pre neexistujúci kľúč. Syntax defaultdict je nasledovná:

defaultdict (default_factory)

Funkcia defaultdict berie parameter argument default_factory ako argument. Funkcia default_factory vráti predvolenú hodnotu pre definovaný defaultdict. Ak sa pokúsime získať prístup alebo upraviť kľúč, ktorý chýba, funkcia default_factory vráti ako výsledok predvolenú hodnotu. Ak funkcia default_factory chýba, potom defaultdic spôsobí chybu „KeyError“, ak chýbajú nejaké kľúče.

Najskôr v našom skripte Python implementujeme defaultdic na prístup k existujúcim aj chýbajúcim kľúčom.

#importujte predvolenýdát z modulu zhromažďovania
zo zbierok importovať defaultdict
# definovanie funkcie na vrátenie predvolenej hodnoty
def my_func ():
print ("Kľúč nie je definovaný")
#vytvorenie sporu
#passing the my_func () ako argument defaultdict
my_dict = defaultdict (my_func)
# definovanie kľúčov a hodnôt
my_dict [1] = "Dobrý deň"
my_dict [2] = "Vitajte"
my_dict [3] = "LinuxHint"
# prístup k hodnotám pomocou klávesov
tlač (my_dict [1])
tlač (my_dict [2])
tlač (my_dict [3])
# prístup k chýbajúcemu alebo nedefinovanému kľúču
my_dict [4]

Výkon

[4] chýba kľúč. Namiesto chyby „KeyError“ teda zavolá funkciu default_factory, ktorá vráti predvolenú hodnotu.


Ako parameter default_factory sa dá použiť aj funkcia lambda známa ako anonymná funkcia.

Ďalej implementujeme funkciu lambda a odovzdáme ju ako argument defaultdict.

#importujte predvolenýdát z modulu zhromažďovania
zo zbierok importovať defaultdict
#vytvorenie sporu
#posunutie funkcie Lamnda ako argument k predvolenému diktátu
my_dict = defaultdict (lambda: "Kľúč nie je definovaný")
# definovanie kľúčov a hodnôt
my_dict [1] = "Dobrý deň"
my_dict [2] = "Vitajte"
my_dict [3] = "LinuxHint"
# prístup k hodnotám pomocou klávesov
tlač (my_dict [1])
tlač (my_dict [2])
tlač (my_dict [3])
# prístup k chýbajúcemu alebo nedefinovanému kľúču
tlač (my_dict [4])

Defaultdict volá default_factory na poskytnutie predvolenej hodnoty, ale funkcia __missing () __ poskytuje predvolenú hodnotu. Funkcia __missing () __ je vstavaná funkcia v Pythone, ktorá berie argument argument default_factory. Ak nie je definovaný parameter default_factory, funkcia __missing () __ vyvolá chybu „KeyError“.

Tu použijeme funkciu __missing () __ v našom skripte Python.

#importujte predvolenýdát z modulu zhromažďovania
zo zbierok importovať defaultdict
# definovanie funkcie na vrátenie predvolenej hodnoty
def my_func ():
print ("Kľúč nie je definovaný")
#vytvorenie sporu
#passing the my_func () ako argument defaultdict
my_dict = defaultdict (my_func)
# definovanie kľúčov a hodnôt
my_dict [1] = "LinuxHint"
# prístup k hodnotám pomocou klávesov
tlač (my_dict [1])
# prístup k chýbajúcemu alebo nedefinovanému kľúču
my_dict.__ Missing __ (2)

Výkon

Zoznam a triedy int je možné použiť aj ako parametre default_factory s parametrom defaultdict.

Zoznam ako parameter default_factory

Defaultdict sa vytvorí s hodnotami zoznamu, keď sa triede zoznamu odovzdá parameter default_factory.

#importujte predvolenýdát z modulu zhromažďovania
zo zbierok importovať defaultdict
# definovanie predvoleného rozsudku
# absolvovanie triedy zoznamu ako default_factory
my_dict = defaultdict (zoznam)
pre i v rozsahu (7):
my_dict [i].pridať (i)
#tlač hodnôt
print (my_dict)

Výkon

Výstup zobrazuje hodnoty v zozname. Ako vidíte, bol vytvorený defaultdict, ktorý obsahuje kľúč a hodnoty.

Celé čísla ako parameter default_factory

Ak triedu int odovzdáme ako parameter default_factory, môžeme vytvoriť defaultdict, ktorý obsahuje iba celé čísla. Vytvoríme zoznam celých čísel a potom ho uložíme na predvolený názor.

#importujte predvolenýdát z modulu zhromažďovania
zo zbierok importovať defaultdict
# definovanie predvoleného rozsudku
# absolvovanie triedy int ako default_factory
my_dict = defaultdict (int)
#vytvorenie zoznamu celých čísel
my_list = [1,2,3]
pre i v mojom zozname:
my_dict [i] + = 1
#tlač hodnôt
print (my_dict)

Výkon

V danom výstupe sú celočíselné hodnoty pred dvojbodkou (:) kľúčmi, zatiaľ čo celočíselné hodnoty za dvojbodkou sú hodnoty.

Záver

Dafualtdict je trieda podobná slovníku prítomná v module zbierok. Funguje to ako slovník v jazyku Python, ale nevyvolá chybu „KeyError“, ak sa kľúč nenájde. Tento článok podrobne vysvetľuje predvolené nastavenie pomocou rôznych príkladov.

S ovládaním pomocou myši X-Mouse môžete tlačidlá myši premapovať odlišne pre iný softvér
Možno budete potrebovať nástroj, ktorý by mohol zmeniť ovládanie myši pri každej aplikácii, ktorú používate. Ak je to váš prípad, môžete vyskúšať apli...
Recenzia bezdrôtovej myši Microsoft Sculpt Touch
Nedávno som čítal o Microsoft Sculpt Touch bezdrôtová myš a rozhodol sa ju kúpiť. Po chvíli používania som sa rozhodol s ním podeliť o svoje skúsenost...
Trackpad a ukazovateľ myši AppyMouse na obrazovke pre tablety so systémom Windows
Používateľom tabletov často chýba ukazovateľ myši, najmä keď notebooky bežne používajú. Dotykové smartphony a tablety majú veľa výhod a jediným obmedz...