Python

Python Namedtuple

Python Namedtuple

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:

  1. Z uporabo tipk
  2. Z uporabo indeksov
  3. 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 zbirk
uvozi 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 zbirk
uvozi 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:-

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:

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

SuperTuxKart za Linux
SuperTuxKart je odličen naslov, zasnovan tako, da vam brezplačno ponuja izkušnjo Mario Kart v vašem sistemu Linux. Igrati je precej zahtevno in zabavn...
Vadnica za bitko za Wesnoth
Bitka za Wesnoth je ena izmed najbolj priljubljenih odprtokodnih strateških iger, ki jih lahko trenutno igrate. Ne samo, da se ta igra razvija že zelo...
0 A.D. Vadnica
Od številnih strateških iger tam 0 A.D. uspe izstopati kot izčrpen naslov in zelo globoka, taktična igra, čeprav je odprtokodna. Razvoj igre deluje ze...