Python Namedtuple

Python Namedtuple

Python kommer med mange innebygde datastrukturer som lister, ordbøker og tuples for å lagre og administrere dataene effektivt. Den navngitte tupelen er den ordboklignende beholderen som er tilgjengelig i "Collections" -modulen. I likhet med ordbøkene, inneholder den navngitte tasten også nøklene som er kartlagt til verdier. Imidlertid tillater den navngitte tuple å få tilgang til verdiene gjennom nøkler og så vel som gjennom indekser. Sammenlignet med Python -ordbøkene, er det å få tilgang til verdiene gjennom indekser den ekstra funksjonaliteten i NameTuple. Denne artikkelen forklarer Python namedtuple i detalj med eksempler.

Få tilgang til verdier fra den navngitte tupelen

Verdiene i den navngitte tupelen kan nås på følgende måter:

  1. Ved å bruke nøklene
  2. Ved å bruke indeksene
  3. Ved å bruke getAtt () -funksjonen

Ettersom den navngitte tupelen konverterer feltet til attributtene, er det derfor enkelt å få tilgang til verdiene ved hjelp av getAtTr () -funksjonen.

Eksempler

La oss nå se noen eksempler for å forstå skapelsen og arbeidet med namedtuple. For å opprette og bruke den navngitte tupelen, må vi først importere samlingsmodulen. I det nedenfor er det opprettet et eksempel, er det opprettet en navngitt å. Nøklene til den navngitte tupelen er henholdsvis navn, alder og avdeling. Verdiene får tilgang til ved hjelp av indekser og nøkler.

#importing av samlingsmodulen
Importsamlinger
#Creating a Namedtuple for en lærer
#navn, alder og avdeling er nøklene
Lærer = samlinger.NamedTuple ('Teacher', ['Name', 'Age', 'Department'])
# Opprett en ny lærer og legge til verdiene
lærer_john = lærer ("John", 29, "informatikk")
#Tilgang til lærerverdiene ved hjelp av indekser
Print ("Få tilgang til verdier ved hjelp av indekser:")
trykk ("Lærerens navn er:", lærer_john [0])
trykk ("Læreralder er:", lærer_john [1])
Print ("Læreravdelingen er:", lærer_john [2])
#Tilgang til lærerverdiene ved hjelp av nøkler
Print ("Få tilgang til verdier ved hjelp av nøkler:")
trykk ("Lærerens navn er:", lærer_john.Navn)
trykk ("Læreralder er:", lærer_john.alder)
trykk ("Læreravdelingen er:", lærer_john.avdeling)

Produksjon

La oss nå få tilgang til verdiene ved hjelp av getAtTr () -funksjonen. Den navngitte tupelen og nøkkelen blir gitt som et argument til getAtt () -funksjonen.

#importing av samlingsmodulen
Importsamlinger
#Creating a Namedtuple for en lærer
#navn, alder og avdeling er nøklene
Lærer = samlinger.NamedTuple ('Teacher', ['Name', 'Age', 'Department'])
# Opprett en ny lærer og legge til verdiene
lærer_john = lærer ("John", 29, "informatikk")
#Tilgang til lærerverdiene ved hjelp av getAtTr () -funksjonen
Print (getAttr (Teacher_John, "Name"))
Print (getAttr (Teacher_John, "Age"))
Print (getAttr (Teacher_John, "Department"))

Produksjon

Populære operasjoner av Namedtuple

Noen populære funksjoner konverterer de andre samlingene som lister, ordbøker og tuples til NameTuple og returnerer den navngitte informasjon. Følgende er funksjonene som konverterer de andre samlingene til Namedtuple:-

  • _gjøre()
  • _asdict ()
  • ** Operatør

_Make () -funksjonen konverterer en iterable objekt som liste og tuple til en namenk. _Asdict () -funksjonen gjør en ordre fra den navngitte tupelen og returnerer den. Til slutt konverterer ** operatøren en ordbok til en navn. I tillegg er funksjonene som returnerer den navngitte informasjonsinformasjonen:

  • _Enger
  • _erstatte()

_Fields () -funksjonen returnerer alle feltene i den navngitte tupelen, mens _replace () -funksjonen erstatter en bestemt verdi med en annen verdi.

La oss implementere funksjonene som nevnt ovenfor i Python -skriptet vårt for å konvertere de forskjellige samlingene til Namedtuple.

#importing av samlingsmodulen
Importsamlinger
#Creating a Namedtuple for en lærer
#navn, alder og avdeling er nøklene
Lærer = samlinger.NamedTuple ('Teacher', ['Name', 'Age', 'Department'])
# Opprett en ny lærer og legge til verdiene
lærer_john = lærer ("John", 29, "informatikk")
#Creating a List
lærer_list = ["Mark", 30, "Business Administration"]
#Creating a Dictionary
lærer_dict = 'name': 'Talor', 'Age': 32, 'Department': 'Economics'
#bruk _Make () -funksjonen for å konvertere liste til NamedTuple
trykk ("Liste til NamedTuple Conversion:")
trykk (lærer._Make (lærer_list))
#bruk _asDict () -funksjon for å lage en ordre
trykk ("Making the OrderedDict:")
trykk (lærer_john._asdict ())
#Bruke ** for å konvertere en ordbok til en namen
trykk ("Konvertere ordboken til Namedtuple:")
trykk (lærer (** lærer_dict))

Produksjon

La oss nå bruke _fields (), og _replace () -funksjonene for å få nøklene 'informasjon og erstatte nøklene.

#importing av samlingsmodulen
Importsamlinger
#Creating a Namedtuple for en lærer
#navn, alder og avdeling er nøklene
Lærer = samlinger.NamedTuple ('Teacher', ['Name', 'Age', 'Department'])
# Opprett en ny lærer og legge til verdiene
lærer_john = lærer ("John", 29, "informatikk")
#Bruk _fields fungerer for å få nøklene til Namedtuple
Print ("nøklene til Namedtuple er:")
trykk (lærer._Enger)
#bruk _replace -funksjonen for å erstatte verdien
Print ("Erstatt verdien av navnet er:")
trykk (lærer_john._Replace (name = 'Donald'))

Produksjon
I utdataene kan det sees at _fields -funksjonen returnerer nøklene til informasjon, og _replace () -funksjonen erstatter navnet vellykket.

Konklusjon

Den navngitte tupelen er den ordboklignende beholderen som er til stede i "samlinger" -modulen. Den inneholder nøkkelen og kartlegger verdiene til nøkkelen. I motsetning til Python Dictionary, kan de navnlige verdiene også nås ved hjelp av indeksene og getAtTr () -funksjonen. Denne artikkelen forklarer kort tid.