„Python“

„Python Namedtuple“

„Python Namedtuple“

„Python“ pateikia daugybę įmontuotų duomenų struktūrų, tokių kaip sąrašai, žodynai ir rinkiniai, kad būtų galima efektyviai saugoti ir tvarkyti duomenis. „Namedtuple“ yra į žodyną panašus konteineris, kurį galima rasti modulyje „kolekcijos“. Panašiai kaip žodynuose, pavadintame tuple taip pat yra raktai, susieti su vertybėmis. Tačiau „namedtuple“ leidžia pasiekti reikšmes naudojant raktus ir indeksus. Palyginti su „Python“ žodynais, prieiga prie reikšmių per indeksus yra papildoma „namedtuple“ funkcija. Šis straipsnis išsamiai paaiškina „Python“ pavadinimą.

Prieiga prie reikšmių iš pavadinto dvigubo

Vertes pavadintame korpuse galima pasiekti šiais būdais:

  1. Naudojant klavišus
  2. Naudojant indeksus
  3. Naudojant funkciją getattr ()

Kadangi „namedtuple“ paverčia lauką atributais, todėl lengva pasiekti reikšmes naudojant funkciją getattr ().

Pavyzdžiai

Dabar pažiūrėkime keletą pavyzdžių, kaip suprasti „namedtuple“ kūrimą ir veikimą. Norėdami sukurti ir naudoti „namedtuple“, pirmiausia turime importuoti kolekcijų modulį. Toliau pateiktame pavyzdyje yra sukurtas pavadintas mokytojo vardas. Pavadinto pavadinimo raktai yra atitinkamai vardas, amžius ir skyrius. Vertės pasiekiamos naudojant indeksus ir raktus.

#importuoti kolekcijų modulį
importuoti kolekcijas
# sukūręs pavadintą mokytoją
# vardas, amžius ir skyrius yra raktai
Mokytojas = kolekcijos.namedtuple („Mokytojas“, [„vardas“, „amžius“, „skyrius“])
# sukurkite naują mokytoją ir pridėkite vertes
teacher_john = Mokytojas („Jonas“, 29 m., „Kompiuterija“)
# prieiga prie mokytojo vertybių naudojant indeksus
spausdinti ("Prieiga prie reikšmių naudojant rodykles:")
spausdinti ("Mokytojo vardas yra:", mokytojas_johnas [0])
spausdinti ("Mokytojo amžius yra:", mokytojas_johnas [1])
spausdinti ("Mokytojo skyrius yra:", mokytojas_johnas [2])
# prieiga prie mokytojo vertybių naudojant raktus
spausdinti ("Prieiga prie verčių naudojant raktus:")
spausdinti ("Mokytojo vardas yra:", mokytojas_johnas.vardas)
spausdinti ("Mokytojo amžius yra:", mokytojas_johnas.amžius)
spausdinti ("Mokytojo skyrius yra:", mokytojas_johnas.departamentas)

Rezultatas

Dabar pasieksime reikšmes naudodami funkciją getattr (). Pavadinimasisupas ir raktas perduodami kaip argumentas funkcijai getattr ().

#importuoti kolekcijų modulį
importuoti kolekcijas
# sukūręs pavadintą mokytoją
# vardas, amžius ir skyrius yra raktai
Mokytojas = kolekcijos.namedtuple („Mokytojas“, [„vardas“, „amžius“, „skyrius“])
# sukurkite naują mokytoją ir pridėkite vertes
teacher_john = Mokytojas („Jonas“, 29 m., „Kompiuterija“)
# prieiga prie mokytojo vertybių naudojant funkciją getattr ()
spausdinti (getattr (mokytojo_johnas, "vardas"))
spausdinti (getattr (mokytojas_johnas, "amžius"))
spausdinti (getattr (mokytojas_johnas, „skyrius“))

Rezultatas

Populiarios operacijos „namedtuple“

Kai kurios populiarios funkcijos paverčia kitas kolekcijas, tokias kaip sąrašai, žodynai ir rinkiniai, į pavadintą paketą ir grąžina pavadinto pavadinimo informaciją. Toliau pateikiamos funkcijos, kurios konvertuoja kitas kolekcijas į namedtuple:-

Funkcija _make () paverčia pasikartojantį objektą, pavyzdžiui, sąrašą ir paketą į pavadintą. Funkcija _asdict () sukuria orderDict iš pavadinto paketo ir grąžina jį. Galiausiai ** operatorius žodyną paverčia pavadintu dvipusiu. Be to, funkcijos, kurios grąžina pavadintą dvigubą informaciją, yra šios:

Funkcija _fields () grąžina visus pavadinto laukelio laukus, o funkcija _replace () pakeičia tam tikrą vertę kita verte.

Įgyvendinkime anksčiau paminėtas funkcijas savo „Python“ scenarijuje, kad skirtingos kolekcijos būtų paverstos „namedtuple“.

#importuoti kolekcijų modulį
importuoti kolekcijas
# sukūręs pavadintą mokytoją
# vardas, amžius ir skyrius yra raktai
Mokytojas = kolekcijos.namedtuple („Mokytojas“, [„vardas“, „amžius“, „skyrius“])
# sukurkite naują mokytoją ir pridėkite vertes
teacher_john = Mokytojas („Jonas“, 29 m., „Kompiuterija“)
#sukurti sąrašą
teacher_list = ["Pažymėti", 30, "Verslo administravimas"]
# žodyno kūrimas
teacher_dict = 'name': 'Talor', 'age': 32, 'department': 'Economics'
#using _make () funkciją konvertuoti sąrašą į namedtuple
spausdinti ("Sąrašo konversija į pavadintą kelis:")
spausdinti (mokytojas._daryti (mokytojo_ sąrašas))
#using _asdict () funkciją norint padaryti „OrderDict“
spausdinti („Making the OrderedDict:“)
spausdinti (mokytojas_johnas._paskyrimas ()
#naudojant ** žodyną paversti pavadintu dvipusiu
spausdinti ("Žodyno konvertavimas į pavadintą paketą:")
spausdinti (mokytojas (** mokytojo_diktatas))

Rezultatas

Dabar naudokime funkcijas _fields () ir _replace (), kad gautume raktų informaciją ir pakeistume raktus.

#importuoti kolekcijų modulį
importuoti kolekcijas
# sukūręs pavadintą mokytoją
# vardas, amžius ir skyrius yra raktai
Mokytojas = kolekcijos.namedtuple („Mokytojas“, [„vardas“, „amžius“, „skyrius“])
# sukurkite naują mokytoją ir pridėkite vertes
teacher_john = Mokytojas („Jonas“, 29 m., „Kompiuterija“)
#using _fields funkcija, norint gauti pavadinimų paketo raktus
spausdinti ("Pavadinto pavadinimo raktai yra:")
spausdinti (mokytojas._laukai)
#naudojant _replace funkciją, norint pakeisti vertę
spausdinti ("Pavadinimo vertė yra:")
spausdinti (mokytojas_johnas._replace (vardas = 'Donaldas'))

Rezultatas
Išvestyje matyti, kad funkcija _fields grąžina informacijos raktus, o funkcija _replace () sėkmingai pakeičia pavadinimą.

Išvada

„Namedtuple“ yra į žodyną panašus konteineris, esantis „kolekcijų“ modulyje. Jame yra raktas ir reikšmės susiejamos su raktu. Skirtingai nuo „Python“ žodyno, vardų rinkinių reikšmes taip pat galima pasiekti naudojant indeksus ir getattr () funkciją. Šiame straipsnyje pavyzdžiais trumpai paaiškinamas įvardytasis kelias.

Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...
Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...
Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...