Python

Python Namedtuple

Python Namedtuple

Python kommer med mange indbyggede datastrukturer som lister, ordbøger og tupler til at gemme og administrere data effektivt. Den navngivne tuple er den ordboglignende container, der er tilgængelig i modulet "samlinger". I lighed med ordbøgerne indeholder den navngivne tuple også de nøgler, der er kortlagt til værdier. Imidlertid giver den navngivne tuple adgang til værdierne via taster og såvel som gennem indekser. Sammenlignet med Python-ordbøgerne er adgang til værdierne gennem indekser den ekstra funktionalitet i namedtuple. Denne artikel forklarer Python navngivet tuple i detaljer med eksempler.

Adgang til værdier fra den navngivne tuple

Værdierne inde i den navngivne tuple kan fås på følgende måder:

  1. Ved at bruge tasterne
  2. Ved at bruge indekserne
  3. Ved hjælp af funktionen getattr ()

Da den navngivne tuple konverterer feltet til attributterne, er det derfor let at få adgang til værdierne ved hjælp af getattr () -funktionen.

Eksempler

Lad os nu se nogle eksempler for at forstå oprettelsen og arbejdet med namedtuple. For at oprette og bruge den navngivne tuple skal vi først importere samlingsmodulet. I nedenstående eksempel er der oprettet en navngivet tuple til en lærer. Nøglerne til den navngivne tuple er henholdsvis navn, alder og afdeling. Værdierne tilgås ved hjælp af indekser og nøgler.

#importing af samlingsmodulet
importer samlinger
# opretter en navngivet tuple til en lærer
#navn, alder og afdeling er nøglerne
Lærer = samlinger.namedtuple ('Lærer', ['navn', 'alder', 'afdeling'])
# Opret en ny lærer og tilføj værdierne
teacher_john = Lærer ("John", 29, "Computer Science")
#adgang til lærerværdierne ved hjælp af indekser
print ("Adgang til værdier ved hjælp af indekser:")
print ("Lærerens navn er:", teacher_john [0])
print ("Lærerens alder er:", teacher_john [1])
print ("Lærerafdelingen er:", teacher_john [2])
#adgang til lærerværdierne ved hjælp af taster
print ("Adgang til værdier ved hjælp af taster:")
print ("Lærerens navn er:", lærer_john.navn)
print ("Lærernes alder er:", teacher_john.alder)
print ("Lærerafdelingen er:", teacher_john.afdeling)

Produktion

Lad os nu få adgang til værdierne ved hjælp af funktionen getattr (). Den navngivne tuple og nøglen sendes som et argument til getattr () -funktionen.

#importing af samlingsmodulet
importer samlinger
# opretter en navngivet tuple til en lærer
#navn, alder og afdeling er nøglerne
Lærer = samlinger.namedtuple ('Lærer', ['navn', 'alder', 'afdeling'])
# Opret en ny lærer og tilføj værdierne
teacher_john = Lærer ("John", 29, "Computer Science")
#adgang til lærerværdierne ved hjælp af funktionen getattr ()
udskriv (getattr (lærer_john, "navn"))
print (getattr (lærer_john, "alder"))
print (getattr (lærer_john, "afdeling"))

Produktion

Populære operationer med namedtuple

Nogle populære funktioner konverterer de andre samlinger som lister, ordbøger og tupler til namedtuple og returnerer the namedtuple information. Følgende er de funktioner, der konverterer de andre samlinger til namedtuple:-

Funktionen _make () konverterer et iterabelt objekt som liste og tuple til en namedtuple. Funktionen _asdict () laver en orderDict fra den navngivne tuple og returnerer den. Endelig konverterer ** operatoren en ordbog til en navngivet tuple. Derudover er de funktioner, der returnerer den navngivne information om to personer, følgende:

Funktionen _fields () returnerer alle felterne i den navngivne tuple, mens funktionen _replace () erstatter en bestemt værdi med en anden værdi.

Lad os implementere funktionerne som nævnt ovenfor i vores Python-script for at konvertere de forskellige samlinger til namedtuple.

#importing af samlingsmodulet
importer samlinger
# opretter en navngivet tuple til en lærer
#navn, alder og afdeling er nøglerne
Lærer = samlinger.namedtuple ('Lærer', ['navn', 'alder', 'afdeling'])
# Opret en ny lærer og tilføj værdierne
teacher_john = Lærer ("John", 29, "Computer Science")
# opretter en liste
teacher_list = ["Mark", 30, "Business Administration"]
#oprette en ordbog
teacher_dict = 'name': 'Talor', 'age': 32, 'department': 'Economics'
#using _make () funktion til at konvertere listen til namedtuple
print ("Liste til navngivne konverteringer:")
udskrive (lærer._make (lærerliste))
#using _asdict () -funktion til at lave en OrderDict
print ("Making the OrderedDict:")
udskrive (lærer_john._asdict ())
# bruger ** til at konvertere en ordbog til en navngivet tuple
print ("Konvertering af ordbogen til namedtuple:")
print (Lærer (** teacher_dict))

Produktion

Lad os nu bruge funktionerne _fields () og _replace () til at få henholdsvis nøglenes information og udskifte nøglerne.

#importing af samlingsmodulet
importer samlinger
# opretter en navngivet tuple til en lærer
#navn, alder og afdeling er nøglerne
Lærer = samlinger.namedtuple ('Lærer', ['navn', 'alder', 'afdeling'])
# Opret en ny lærer og tilføj værdierne
teacher_john = Lærer ("John", 29, "Computer Science")
#using _fields funktion til at hente nøglerne til namedtuple
print ("Nøglerne til namedtuple er:")
udskrive (lærer._felter)
#using _replace-funktion til at erstatte værdien
print ("Erstatningsværdien af ​​navnet er:")
udskrive (lærer_john._replace (name = 'Donald'))

Produktion
I output kan det ses, at funktionen _fields returnerer informationstasterne, og funktionen _replace () erstatter navnet med succes.

Konklusion

Den navngivne tuple er den ordboglignende container, der findes i modulet "samlinger". Den indeholder nøglen og kortlægger værdierne til nøglen. I modsætning til Python-ordbogen kan de navngivne værdier også fås ved hjælp af indekserne og getattr () -funktionen. Denne artikel forklarer kort den navngivne tuple gennem eksempler.

Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...
Nyttige værktøjer til Linux-spillere
Hvis du kan lide at spille spil på Linux, er chancerne for, at du måske har brugt apps og hjælpeprogrammer som Wine, Lutris og OBS Studio for at forbe...
HD Remastered-spil til Linux, der aldrig tidligere havde haft en Linux-udgivelse
Mange spiludviklere og udgivere kommer med HD-remaster af gamle spil for at forlænge franchisens levetid. Venligst fans, der anmoder om kompatibilitet...