Piton

Pythonova zadana presuda

Pythonova zadana presuda

Python nudi mnoge ugrađene strukture podataka, poput popisa, korijena i rječnika, za učinkovito spremanje i upravljanje podacima. Rječnici pružaju jednostavan način spremanja podataka kao parova ključ / vrijednost. Ključ djeluje kao indeks i koristi se za dohvaćanje podataka. Ključevi bi trebali biti jedinstveni i nepromjenjivi u cijelom rječniku. Ključevi su uglavnom nizovi i cijeli brojevi, iako vrijednost ključa može biti bilo koje vrste, poput cijelog broja, niza, broja s pomičnom zarezom ili složenog broja. U međuvremenu, rječnik može sadržavati zbirku, poput popisa, nabora ili neke druge vrste rječnika. Rječnik u Pythonu kreira se pomoću para kovrčavih zagrada u kojima je svaki par ključ / vrijednost odvojen zarezom.

Što ako pokušate pristupiti ili izmijeniti određeni ključ u rječniku koji ne postoji? Pa, u ovom slučaju, tumač Python će pokrenuti pogrešku "KeyError" i prekinuti izvršavanje programa.

Pogledajmo primjer pogreške "KeyError".

#stvaranje rječnika
my_dict = 1: "Zdravo", 2: "Dobrodošli", 3: "LinuxHint"
# pristup ključu koji ne postoji
moja_ presuda [4]

Izlaz

Da bi riješio ovu pogrešku, Python pruža defaultdict vrstu, klasu rječnika koja se može naći u modulu collection. Ovaj članak detaljno pokriva zadanu presudu za Python.

Objašnjenje i primjeri nepravomoćne presude

Zadana je presuda alternativa rječniku Python. Vraća objekte tipa rječnika. Zadana presuda je podrazred izreke. U slučaju da nedostaje ključ, umjesto da se pojavi pogreška "KeyError", zadana je vrijednost za nepostojeći ključ. Sintaksa zadane presude je sljedeća:

zadana presuda (default_factory)

Funkcija defaultdict uzima kao argument parametar default_factory. Funkcija default_factory vraća zadanu vrijednost za definiranu defaultdict. Ako pokušamo pristupiti ili izmijeniti ključ koji nedostaje, tada funkcija default_factory vraća zadanu vrijednost kao rezultat. Ako funkcija default_factory nedostaje, tada će defaultdic pokrenuti pogrešku "KeyError" ako nedostaju ključevi.

Prvo ćemo implementirati defaultdic u našu Python skriptu za pristup postojećim i nedostajućim ključevima.

#import defaultdict iz modula za prikupljanje
iz zbirki import defaultdict
#definiranje funkcije za vraćanje zadane vrijednosti
def my_func ():
print ("Ključ nije definiran")
#creating defualtdict
# prosljeđivanje my_func () kao argumenta za zadanu presudu
my_dict = zadana presuda (my_func)
#definiranje ključeva i vrijednosti
my_dict [1] = "Pozdrav"
my_dict [2] = "Dobrodošli"
my_dict [3] = "LinuxHint"
# pristup vrijednostima pomoću tipki
ispis (my_dict [1])
ispis (my_dict [2])
ispis (my_dict [3])
# pristup nedostajućem ili nedefiniranom ključu
moja_ presuda [4]

Izlaz

Tipka [4] nedostaje. Dakle, umjesto da izazove pogrešku "KeyError", poziva funkciju default_factory, koja vraća zadanu vrijednost.


Lambda funkcija, poznata kao anonimna funkcija, također se može koristiti kao parametar default_factory.

Dalje, implementirat ćemo lambda funkciju i proslijediti je kao argument zadane presude.

#import defaultdict iz modula za prikupljanje
iz zbirki import defaultdict
#creating defualtdict
# prolazak funkcije Lamnda kao argument za presudu
my_dict = defaultdict (lambda: "Ključ nije definiran")
#definiranje ključeva i vrijednosti
my_dict [1] = "Pozdrav"
my_dict [2] = "Dobrodošli"
my_dict [3] = "LinuxHint"
# pristup vrijednostima pomoću tipki
ispis (my_dict [1])
ispis (moj_dict [2])
ispis (my_dict [3])
# pristup nedostajućem ili nedefiniranom ključu
ispis (my_dict [4])

Defaultdict poziva default_factory da pruži zadanu vrijednost, ali funkcija __missing () __ pruža zadanu vrijednost. Funkcija __missing () __ je ugrađena funkcija u Pythonu koja kao argument uzima parametar default_factory. Ako parametar default_factory nije definiran, funkcija __missing () __ dovodi do pogreške "KeyError".

Ovdje ćemo koristiti funkciju __missing () __ u našoj Python skripti.

#import defaultdict iz modula za prikupljanje
iz zbirki import defaultdict
#definiranje funkcije za vraćanje zadane vrijednosti
def my_func ():
print ("Ključ nije definiran")
#creating defualtdict
# prosljeđivanje my_func () kao argumenta za zadanu presudu
my_dict = zadana presuda (my_func)
#definiranje ključeva i vrijednosti
my_dict [1] = "LinuxHint"
# pristup vrijednostima pomoću tipki
ispis (my_dict [1])
# pristup nedostajućem ili nedefiniranom ključu
moja_ presuda.__ nedostaje __ (2)

Izlaz

Klase popisa i int mogu se koristiti i kao default_factory parametri s defaultdictom.

Navedi kao zadani_fabrički parametar

Zadana presuda kreira se s vrijednostima popisa kada se klasi popisa proslijedi default_factory parametar.

#import defaultdict iz modula za prikupljanje
iz zbirki import defaultdict
# definiranje zadane presude
# prosljeđivanje klase popisa kao zadane_tvornice
my_dict = zadana presuda (popis)
za i u opsegu (7):
moja_ presuda [i].dodati (i)
#print vrijednosti
ispis (my_dict)

Izlaz

Izlaz prikazuje vrijednosti na popisu. Kao što vidite, stvorena je zadana presuda koja sadrži ključ i vrijednosti.

Cijeli brojevi kao default_factory parametar

Ako proslijedimo klasu int kao default_factory parametar, tada možemo stvoriti defaultdict koji sadrži samo cijele brojeve. Stvorit ćemo popis cijelih brojeva, a zatim ćemo ga spremiti u zadanu presudu.

#import defaultdict iz modula za prikupljanje
iz zbirki import defaultdict
# definiranje zadane presude
# prosljeđivanje klase int kao default_factory
my_dict = defaultdict (int)
#stvaranje popisa cijelih brojeva
moj_popis = [1,2,3]
jer sam na svom_popisu:
moja_ presuda [i] + = 1
#print vrijednosti
ispis (my_dict)

Izlaz

U danom izlazu cjelobrojne vrijednosti prije dvotačke (:) su ključevi, dok su cjelobrojne vrijednosti nakon dvotačke vrijednosti.

Zaključak

Dafualtdict je klasa nalik rječniku prisutna u modulu zbirke. Radi kao Python rječnik, ali ne pokreće "KeyError" kada ključ nije pronađen. Ovaj članak detaljno objašnjava zadanu presudu s raznim primjerima.

Pokazivač skače ili se slučajno pomiče dok tipkate u sustavu Windows 10
Ako ustanovite da kursor miša sam skače ili se pomiče automatski, nasumično dok tipkate u Windows prijenosnom računalu ili računalu, neki od ovih prij...
Kako obrnuti smjer pomicanja miša i dodirnih pločica u sustavu Windows 10
Miš i Dodirna pločaRačunarstvo ne samo da olakšava, već i učinkovitije i oduzima puno vremena. Ne možemo zamisliti život bez ovih uređaja, ali činjeni...
Kako promijeniti pokazivač miša i veličinu, boju i shemu pokazivača na sustavu Windows 10
Pokazivač i pokazivač miša u sustavu Windows 10 vrlo su važni aspekti operativnog sustava. To se može reći i za druge operativne sustave, tako da u is...