Python prichádza s mnohými zabudovanými dátovými štruktúrami, ako sú zoznamy, slovníky a n-tice, ktoré umožňujú efektívne ukladanie a správu údajov. Namedtuple je kontajner podobný slovníku, ktorý je k dispozícii v module „zbierky“. Podobne ako slovníky, namedtuple obsahuje aj kľúče, ktoré sú mapované na hodnoty. Namedtuple však umožňuje prístup k hodnotám pomocou kľúčov a tiež prostredníctvom indexov. V porovnaní so slovníkmi Pythonu je prístup k hodnotám prostredníctvom indexov ďalšou funkciou v namedtuple. Tento článok podrobne vysvetľuje príklady python namedtuple.
Prístup k hodnotám z pomenovanej trojice
K hodnotám vo vnútri namedtuple je možné pristupovať nasledujúcimi spôsobmi:
- Pomocou klávesov
- Použitím indexov
- Použitím funkcie getattr ()
Pretože namedtuple prevádza pole na atribúty, je k nim ľahký prístup pomocou funkcie getattr ().
Príklady
Teraz si ukážeme niekoľko príkladov na pochopenie vytvorenia a fungovania pomenovanej dvojice. Aby sme vytvorili a použili namedtuple, najskôr je potrebné importovať modul zbierok. V nasledujúcom príklade sa vytvorí pomenovaná dvojka pre učiteľa. Kľúče pomenovanej dvojice sú meno, vek a oddelenie. K hodnotám sa pristupuje pomocou indexov a kľúčov.
#importovanie modulu zbierokimportovať zbierky
#vytvorenie pomenovanej dvojice pre učiteľa
# meno, vek a oddelenie sú kľúče
Učiteľ = zbierky.namedtuple ('Učiteľ', ['meno', 'vek', 'oddelenie'])
# vytvorte nového učiteľa a pridajte hodnoty
teacher_john = Učiteľ („John“, 29 rokov, „Počítačová veda“)
# prístup k hodnotám učiteľa pomocou indexov
print ("Prístup k hodnotám pomocou indexov:")
print („Meno učiteľa je:“, teacher_john [0])
print ("Vek učiteľa je:", teacher_john [1])
print ("Učiteľské oddelenie je:", teacher_john [2])
# prístup k hodnotám učiteľa pomocou klávesov
print ("Prístup k hodnotám pomocou klávesov:")
print ("Meno učiteľa je:", teacher_john.názov)
print ("Vek učiteľa je:", teacher_john.Vek)
print ("Učiteľské oddelenie je:", teacher_john.oddelenie)
Výkon
Teraz poďme pristupovať k hodnotám pomocou funkcie getattr (). Pomenovaný tuple a kľúč sa odovzdajú ako argument funkcii getattr ().
#importovanie modulu zbierokimportovať zbierky
#vytvorenie pomenovanej dvojice pre učiteľa
# meno, vek a oddelenie sú kľúče
Učiteľ = zbierky.namedtuple ('Učiteľ', ['meno', 'vek', 'oddelenie'])
# vytvorte nového učiteľa a pridajte hodnoty
teacher_john = Učiteľ („John“, 29 rokov, „Počítačová veda“)
# prístup k hodnotám učiteľa pomocou funkcie getattr ()
print (getattr (teacher_john, "meno"))
print (getattr (teacher_john, "age"))
print (getattr (teacher_john, "oddelenie"))
Výkon
Populárne operácie pomenovanej dvojice
Niektoré populárne funkcie prevádzajú ďalšie kolekcie, ako sú zoznamy, slovníky a n-tice, do pomenovanej dvojice a vrátia informácie o pomenovanej trojici. Nasledujú funkcie, ktoré prevádzajú ostatné kolekcie na namedtuple:-
- _urobiť()
- _asdict ()
- ** operátor
Funkcia _make () prevádza iterovateľný objekt, ako je zoznam a n-tica, na pomenovanú n-ticu. Funkcia _asdict () urobí orderDict z namedtuple a vráti ho. Nakoniec operátor ** prevedie slovník na pomenovanú trojicu. Funkcie, ktoré vracajú informácie o pomenovanej trojici, sú navyše:
- _ polia
- _replace ()
Funkcia _fields () vráti všetky polia namedtuple, zatiaľ čo funkcia _replace () nahradí konkrétnu hodnotu inou hodnotou.
Implementujme vyššie uvedené funkcie v našom skripte Python, aby sme konvertovali rôzne kolekcie na namedtuple.
#importovanie modulu zbierokimportovať zbierky
#vytvorenie pomenovanej dvojice pre učiteľa
# meno, vek a oddelenie sú kľúče
Učiteľ = zbierky.namedtuple ('Učiteľ', ['meno', 'vek', 'oddelenie'])
# vytvorte nového učiteľa a pridajte hodnoty
teacher_john = Učiteľ („John“, 29 rokov, „Počítačová veda“)
#vytvorenie zoznamu
teacher_list = ["Mark", 30, "Business Administration"]
#vytvorenie slovníka
teacher_dict = 'name': 'Talor', 'vek': 32, 'department': 'ekonomika'
#using _make () funkcia na prevod zoznamu na namedtuple
print ("Konverzia zoznamu na pomenovanú dvojicu:")
tlač (Učiteľ._make (teacher_list))
#using _asdict () funkcia na vytvorenie OrderDict
print („Making the OrderedDict:“)
tlačiť (teacher_john._asdict ())
#použite ** na prevedenie slovníka na pomenovanú trojicu
print ("Konverzia slovníka na pomenovanú trojicu:")
tlač (Učiteľ (** teacher_dict))
Výkon
Teraz použijeme funkcie _fields () a _replace () na získanie informácií o kľúčoch a ich nahradenie.
#importovanie modulu zbierokimportovať zbierky
#vytvorenie pomenovanej dvojice pre učiteľa
# meno, vek a oddelenie sú kľúče
Učiteľ = zbierky.namedtuple ('Učiteľ', ['meno', 'vek', 'oddelenie'])
# vytvorte nového učiteľa a pridajte hodnoty
teacher_john = Učiteľ („John“, 29 rokov, „Počítačová veda“)
# using _fields funkcia na získanie kľúčov namedtuple
print ("Kľúče namedtuple sú:")
tlač (Učiteľ._pole)
# using _replace funkcia na nahradenie hodnoty
print ("Hodnota nahradenia mena je:")
tlačiť (teacher_john._replace (name = 'Donald'))
Výkon
Na výstupe je vidieť, že funkcia _fields vracia kľúče s informáciami a funkcia _replace () úspešne nahradzuje meno.
Záver
Namedtuple je kontajner podobný slovníku, ktorý sa nachádza v module „zbierky“. Obsahuje kľúč a mapuje hodnoty na kľúč. Na rozdiel od slovníka Python je k hodnotám namedtuples možné pristupovať aj pomocou funkcie indexes a getattr (). Tento článok stručne vysvetľuje pomenovanú trojicu na príkladoch.