Python ima veliko vgrajenih podatkovnih struktur, kot so seznami, slovarji in nabori za učinkovito shranjevanje in upravljanje podatkov. Imenovani je slovarju podoben vsebnik, ki je na voljo v modulu »zbirke«. Podobno kot slovarji tudi imenovani par vsebuje ključe, ki so preslikani na vrednosti. Vendar pa namedtuple omogoča dostop do vrednosti prek ključev in indeksov. V primerjavi s slovarji Python je dostop do vrednosti prek indeksov dodatna funkcionalnost v namedtuple. Ta članek podrobno razlaga Python namedtuple s primeri.
Dostop do vrednosti iz imenovanega para
Do vrednosti znotraj imenovane parice lahko dostopate na naslednje načine:
- Z uporabo tipk
- Z uporabo indeksov
- Z uporabo funkcije getattr ()
Ker namedtuple pretvori polje v atribute, je zato enostavno dostopati do vrednosti s pomočjo funkcije getattr ().
Primeri
Zdaj pa si oglejmo nekaj primerov za razumevanje ustvarjanja in delovanja namedtuple. Če želite najprej ustvariti in uporabiti imenovani par, moramo uvoziti modul zbirk. V spodnjem primeru je ustvarjen imenovani učitelj za učitelja. Ključi imenovane dvojice so ime, starost in oddelek. Do vrednosti dostopate s pomočjo indeksov in tipk.
#uvoz modula zbirkuvozi zbirke
# ustvarjanje imenovanega dvojčka za učitelja
#ime, starost in oddelek so ključi
Učitelj = zbirke.namedtuple ('Učitelj', ['ime', 'starost', 'oddelek'])
# ustvarite novega učitelja in dodajte vrednosti
teacher_john = Učitelj ("John", 29, "Computer Science")
# dostop do učiteljevih vrednosti z uporabo indeksov
print ("Dostop do vrednosti z uporabo indeksov:")
print ("Ime učitelja je:", teacher_john [0])
print ("Starost učitelja je:", teacher_john [1])
print ("Oddelek za učitelje je:", teacher_john [2])
# dostop do učiteljevih vrednosti s pomočjo tipk
print ("Dostop do vrednosti s tipkami:")
print ("Ime učitelja je:", teacher_john.ime)
print ("Starost učitelja je:", teacher_john.starost)
print ("Oddelek za učitelje je:", teacher_john.oddelek)
Izhod
Zdaj pa pojdimo do vrednosti z uporabo funkcije getattr (). Imenovani par in ključ se posredujeta kot argument funkciji getattr ().
#uvoz modula zbirkuvozi zbirke
# ustvarjanje imenovanega dvojčka za učitelja
#ime, starost in oddelek so ključi
Učitelj = zbirke.namedtuple ('Učitelj', ['ime', 'starost', 'oddelek'])
# ustvarite novega učitelja in dodajte vrednosti
teacher_john = Učitelj ("John", 29, "Computer Science")
# dostop do učiteljevih vrednosti z uporabo funkcije getattr ()
tiskanje (getattr (učitelj_john, "ime"))
tisk (getattr (učitelj_john, "starost"))
tisk (getattr (učitelj_john, "oddelek"))
Izhod
Priljubljene operacije namedtuple
Nekatere priljubljene funkcije pretvorijo druge zbirke, kot so seznami, slovarji in nabori, v namedtuple in vrnejo informacije o namedtuple. Sledijo funkcije, ki pretvorijo druge zbirke v namedtuple:-
- _make ()
- _asdict ()
- ** operater
Funkcija _make () pretvori iterable objekt, kot je seznam in tuple, v namedtuple. Funkcija _asdict () naredi orderDict iz imenovane dvojice in ga vrne. Nazadnje operater ** pretvori slovar v imenovani par. Poleg tega so funkcije, ki vrnejo informacije o imenovanih parih, naslednje:
- _polji
- _zamenjati()
Funkcija _fields () vrne vsa polja imenovane parice, medtem ko funkcija _replace () nadomesti določeno vrednost z drugo vrednostjo.
Izvedimo funkcije, kot so omenjene zgoraj v našem skriptu Python za pretvorbo različnih zbirk v namedtuple.
#uvoz modula zbirkuvozi zbirke
# ustvarjanje imenovanega dvojčka za učitelja
#ime, starost in oddelek so ključi
Učitelj = zbirke.namedtuple ('Učitelj', ['ime', 'starost', 'oddelek'])
# ustvarite novega učitelja in dodajte vrednosti
teacher_john = Učitelj ("John", 29, "Computer Science")
# ustvarjanje seznama
teacher_list = ["Oznaka", 30, "Poslovna uprava"]
# ustvarjanje slovarja
teacher_dict = 'name': 'Talor', 'age': 32, 'department': 'Economics'
#using _make () funkcijo za pretvorbo seznama v imenovani števec
print ("Seznam v pretvorbo imenovanega števila:")
tisk (Učitelj._make (seznam učiteljev))
#use _asdict () funkcijo za izdelavo OrderDict
print ("Izdelava urejenega diktata:")
tisk (učitelj_john._asdict ())
# Uporaba ** za pretvorbo slovarja v imenovani par
print ("Pretvorba slovarja v namedtuple:")
tisk (Učitelj (** učitelj_presoja))
Izhod
Zdaj pa uporabimo funkcije _fields () in _replace (), da dobimo informacije o tipkah in jih zamenjamo.
#uvoz modula zbirkuvozi zbirke
# ustvarjanje imenovanega dvojčka za učitelja
#ime, starost in oddelek so ključi
Učitelj = zbirke.namedtuple ('Učitelj', ['ime', 'starost', 'oddelek'])
# ustvarite novega učitelja in dodajte vrednosti
teacher_john = Učitelj ("John", 29, "Computer Science")
Funkcija #use _fields pridobi ključe namedtuple
print ("Tipke namedtuple so:")
tisk (Učitelj._polji)
# using _replace funkcijo za zamenjavo vrednosti
print ("Nadomestna vrednost imena je:")
tisk (učitelj_john._replace (name = 'Donald'))
Izhod
V izhodu je razvidno, da funkcija _fields vrne ključe informacij, funkcija _replace () pa uspešno nadomesti ime.
Zaključek
Imenovani je slovarju podoben vsebnik, ki je prisoten v modulu »zbirke«. Vsebuje ključ in vrednosti preslika v ključ. Za razliko od slovarja Python je do vrednosti namedtuples mogoče dostopati tudi s funkcijo indeksov in getattr (). Ta članek na kratko razlaga imenovani par s primeri.