Python přichází s mnoha integrovanými datovými strukturami, jako jsou seznamy, slovníky a n-tice, které umožňují efektivní ukládání a správu dat. Namedtuple je kontejner podobný slovníku dostupný v modulu „sbírky“. Podobně jako slovníky, namedtuple také obsahuje klíče, které jsou mapovány na hodnoty. Namedtuple však umožňuje přístup k hodnotám pomocí klíčů a také prostřednictvím indexů. Ve srovnání se slovníky Pythonu je přístup k hodnotám prostřednictvím indexů další funkcí v namedtuple. Tento článek podrobně vysvětluje Python namedtuple s příklady.
Přístup k hodnotám z pojmenované řady
K hodnotám uvnitř pojmenované řady lze přistupovat následujícími způsoby:
- Pomocí kláves
- Pomocí indexů
- Pomocí funkce getattr ()
Protože namedtuple převádí pole na atributy, je snadné získat přístup k hodnotám pomocí funkce getattr ().
Příklady
Nyní se podívejme na několik příkladů, abychom porozuměli vytváření a fungování pojmenovaného tuple. Chcete-li vytvořit a použít pojmenovaný tuple, nejprve musíme importovat modul sbírek. V níže uvedeném příkladu je vytvořen pojmenovaný tuple pro učitele. Klíče pojmenované dvojice jsou jméno, věk a oddělení. K hodnotám se přistupuje pomocí indexů a klíčů.
#importování modulu sbírekimportovat sbírky
#vytvoření jmenovky pro učitele
# jméno, věk a oddělení jsou klíče
Učitel = sbírky.namedtuple ('Učitel', ['jméno', 'věk', 'oddělení'])
# vytvořte nového učitele a přidejte hodnoty
teacher_john = Učitel („John“, 29 let, „Počítačová věda“)
# přístup k hodnotám učitele pomocí indexů
print ("Přístup k hodnotám pomocí indexů:")
tisk ("Jméno učitele je:", teacher_john [0])
tisk ("Věk učitele je:", teacher_john [1])
tisk ("Učitelské oddělení je:", teacher_john [2])
# přístup k hodnotám učitele pomocí kláves
print ("Přístup k hodnotám pomocí kláves:")
print ("Jméno učitele je:", teacher_john.název)
print ("Věk učitele je:", teacher_john.stáří)
print ("Učitelské oddělení je:", teacher_john.oddělení)
Výstup
Nyní pojďme přistupovat k hodnotám pomocí funkce getattr (). Namedtuple a klíč se předají jako argument funkci getattr ().
#importování modulu sbírekimportovat sbírky
#vytvoření jmenovky pro učitele
# jméno, věk a oddělení jsou klíče
Učitel = sbírky.namedtuple ('Učitel', ['jméno', 'věk', 'oddělení'])
# vytvořte nového učitele a přidejte hodnoty
teacher_john = Učitel („John“, 29 let, „Počítačová věda“)
# přístup k učitelským hodnotám pomocí funkce getattr ()
print (getattr (teacher_john, "name"))
print (getattr (teacher_john, "věk"))
tisk (getattr (teacher_john, "oddělení"))
Výstup
Populární operace pojmenované n-tice
Některé populární funkce převádějí další kolekce, jako jsou seznamy, slovníky a n-tice, do pojmenované n-tice a vrací informace o pojmenované n-tice. Následuje funkce, které převádějí ostatní kolekce na namedtuple:-
- _udělat()
- _asdict ()
- ** operátor
Funkce _make () převádí iterovatelný objekt, jako je seznam a n-tice, do pojmenované n-tice. Funkce _asdict () vytvoří orderDict z namedtuple a vrátí jej. Nakonec operátor ** převede slovník na pojmenovanou třídu. Funkce, které vracejí pojmenované informace o řazených kolech, jsou následující:
- _ pole
- _nahradit()
Funkce _fields () vrací všechna pole namedtuple, zatímco funkce _replace () nahrazuje konkrétní hodnotu jinou hodnotou.
Pojďme implementovat funkce, jak je uvedeno výše, v našem skriptu Pythonu k převodu různých kolekcí na pojmenovaný tuple.
#importování modulu sbírekimportovat sbírky
#vytvoření jmenovky pro učitele
# jméno, věk a oddělení jsou klíče
Učitel = sbírky.namedtuple ('Učitel', ['jméno', 'věk', 'oddělení'])
# vytvořte nového učitele a přidejte hodnoty
teacher_john = Učitel („John“, 29 let, „Počítačová věda“)
#vytvoření seznamu
teacher_list = ["Mark", 30, "Business Administration"]
#vytvoření slovníku
teacher_dict = 'name': 'Talor', 'age': 32, 'department': 'Economics'
#using _make () funkce pro převod seznamu na namedtuple
print ("Převod seznamu na pojmenovanou dvojici:")
tisk (učitel._make (teacher_list))
#using _asdict () funkce k vytvoření OrderDict
print ("Vytvoření OrderedDict:")
tisk (teacher_john._asdict ())
#pomocí ** k převodu slovníku na pojmenovanou třídu
print ("Převod slovníku na pojmenovanýup:")
tisk (učitel (** teacher_dict))
Výstup
Nyní použijeme funkce _fields () a _replace () k získání informací o klíčích a jejich nahrazení.
#importování modulu sbírekimportovat sbírky
#vytvoření jmenovky pro učitele
# jméno, věk a oddělení jsou klíče
Učitel = sbírky.namedtuple ('Učitel', ['jméno', 'věk', 'oddělení'])
# vytvořte nového učitele a přidejte hodnoty
teacher_john = Učitel („John“, 29 let, „Počítačová věda“)
# using _fields funkce k získání klíčů namedtuple
print ("Klíče pojmenovaného tuple jsou:")
tisk (učitel._ pole)
# using _replace funkce k nahrazení hodnoty
print ("Hodnota nahrazení názvu je:")
tisk (teacher_john._replace (name = 'Donald'))
Výstup
Ve výstupu je vidět, že funkce _fields vrací klíče informací a funkce _replace () úspěšně nahrazuje název.
Závěr
Namedtuple je kontejner podobný slovníku v modulu „sbírky“. Obsahuje klíč a mapuje hodnoty na klíč. Na rozdíl od slovníku Pythonu lze k hodnotám namedtuples přistupovat také pomocí indexů a funkce getattr (). Tento článek stručně vysvětluje pojmenovanou třídu prostřednictvím příkladů.