Bruker Namedtuple i Python

Bruker Namedtuple i Python
Python kommer med en innebygd modul som heter Collections, som gir forskjellige klasser og funksjoner som et alternativ til Python innebygde datastrukturer som DICT, List, Set og Tuple.

Denne Python -opplæringen vil diskutere NamedTuple, en av fabrikkfunksjonene i samlingsmodulen. Vi vil gå gjennom alle viktige konsepter av Python Namedtuple med eksempler og syntaks.

Hva er navngitt i Python?

Namedtuple er en funksjon av Python Collections -modulen, en utvidelse av Python Tuple Data Container som lar oss få tilgang til elementer i en tuple ved hjelp av navn eller etiketter. Vi kan definere en ny tuple -klasse ved å importere NamedTuple fra Python Collections -modulen og bruke NamedTuple () Factory -funksjonen. Kort sagt, en navngitt tuple er en kombinasjon av python tuple og dikter datatype.

Python Namedtuple Syntax

fra samlinger import namedtuple
Tuple_name = NamedTuple (Typname, Field_Names, *, Rename = FALSE, Standards = Ingen, Module = Ingen)

Blant de 6 attributtene til NamedTuple () er bare to obligatoriske, Typnavn og Fields_name, resten er valgfri.

De Typnavn representerer tuple-underklassenavnet, og det brukes til å lage tuple-lignende objekter.

De Feild_names Attributt representerer etikettnavnet for tupleelementene. Det kan være en streng atskilt med mellomrom “FNAME LNAME DEPT Lønn” eller en liste over streng ['FNAME', 'LNAME', 'DEPT', 'Lønn'].

Erklærer en navngitt tuple i Python

La oss nå begynne med å erklære en navn.

fra samlinger import namedtuple
#Declaring the NamedTuple
Ansatt = NamedTuple ("Ansatt", ['Fname', 'Lname', 'Dept', 'Lønn'])
#add verdier til den navngitte tupelen
E1 = Ansatt ('Sam', 'Smith', 'Marketing', 20000)
#Tilgangsverdi med etikett
trykk ("Navnet på ansatt E1 er:", E1.fname + "" + e1.lname)
#Tilgangsverdi ved bruk av indeksverdien
Print ("Department av den ansatte E1 er:", E1 [2])

Produksjon:

Navnet på ansatt E1 er: Sam Smith
Department av den ansatte E1 er: markedsføring

Få tilgang til elementer fra den navngitte tupelen i Python

Det er tre måter å få tilgang til elementer fra en navngitt tuple ved hjelp av:

  • indeks (som en tuple)
  • Feltnavn/etikettnavn (som en ordbok)
  • getAtt () -metode
fra samlinger import namedtuple
#Declaring the Namedtuple:
Ansatt = NamedTuple ("Ansatt", ['Fname', 'Lname', 'Dept', 'Lønn'])
#Legge til verdier til den navngitte tupelen:
E1 = Ansatt ('Sam', 'Smith', 'Marketing', 20000)
#Tilgangsverdi ved bruk av indeksverdi:
Print ("Ansatt (ved hjelp av indeks)", E1 [0], E1 [1], E1 [2], E1 [3])
#Tilgangsverdi med etikett:
print ("ansatt (ved hjelp av etikett)", E1.Fname, E1.Lname, E1.avd. E1.lønn)
#Tilgangsverdi ved bruk av getAttr ():
print ("ansatt (bruker getAtt ())", getAtt (e1, 'fname'), getAtt (e1, 'lname'), getAtt (e1, 'avd.), getAtt (e1,' lønn '))

Produksjon:

Ansatt (ved hjelp av indeks) Sam Smith Marketing 20000
Ansatt (ved hjelp av etikett) Sam Smith Marketing 20000
Ansatt (ved hjelp av getAtt ()) Sam Smith Marketing 20000

Arbeider med Python Namedtuple

Python namedtuples er uforanderlig
Som en normal tuple er nevnte utførbare også uforanderlige. Det vil kaste en feil hvis vi tildeler en ny verdi til et eksisterende indeksnummer eller etikett.

Eksempel:

fra samlinger import namedtuple
#Declaring the NamedTuple
Ansatt = NamedTuple ("Ansatt", ['Fname', 'Lname', 'Dept', 'Lønn'])
#add verdier til den navngitte tupelen
E1 = Ansatt ('Sam', 'Smith', 'Marketing', 20000)
E1.fname = "John" #error

Produksjon:

Attributt: Kan ikke angi attributt

Konvertere en Python som heter Tuple til en Python -ordbok
En navngitt tuple blir behandlet som en ordbok fordi hvert element i den navngitte tupelen er assosiert med en etikett som i en Python -ordbok.

For å konvertere en navngitt utuple til en ordbok, kan vi bruke ._asDict () -metode.

Eksempel:

Fra samlinger import namedtuple
#Declaring the NamedTuple
Ansatt = NamedTuple ("Ansatt", ['Fname', 'Lname', 'Dept', 'Lønn'])
#add verdier til den navngitte tupelen
E1 = Ansatt ('Sam', 'Smith', 'Marketing', 20000)
trykk (E1._asdict ())

Produksjon:

'Fname': 'Sam', 'Lname': 'Smith', 'Dept': 'Marketing', 'Lønn': 20000

Lag en Namedtuple fra Python Iterable -objekt
For å konvertere et iterable objekt som tuple, liste, sett og ordbok til namedtuple, kan vi bruke den navngitte namedtuple's ._Make () Metode.

Eksempel:

Fra samlinger import namedtuple
#Declaring the NamedTuple
Ansatt = NamedTuple ("Ansatt", ['Fname', 'Lname', 'Dept', 'Lønn'])
#liste
E1 = ['Rahul', 'Sharma', 'Marketing', 20000]
#Tuple
E2 = ('Ravi', 'Kumar', 'Marketing', 20000)
trykk (ansatt._Make (E1))
trykk (ansatt._Make (E2))

Produksjon:

Ansatt (fname = 'Rahul', Lname = "Sharma", Dept = "Marketing", lønn = 20000)
Ansatt (fname = 'Ravi', Lname = "Kumar", Dept = "Marketing", lønn = 20000)

Konverter en Python -ordbok til den navngitte tupelen
Det er to måter å konvertere en Python -ordbok til en navngitt.

Vi kan enten bruke ** Operatør eller Ordbokverdier () metode.

Eksempel:

Fra samlinger import namedtuple
#Declaring the NamedTuple
Ansatt = NamedTuple ("Ansatt", ['Fname', 'Lname', 'Dept', 'Lønn'])
#ordbok
e1 = 'fname': 'sonia', 'lname': 'Jenner', 'avd.': 'Management', 'lønn': 20000
#bruk ** operatør
Print (Ansatt (** E1))
#ved hjelp av ._Make () Metode
trykk (ansatt._Make (E1.verdier ()))

Produksjon:

Ansatt (fname = 'Sonia', Lname = "Jenner", Dept = "Management", lønn = 20000)
Ansatt (fname = 'Sonia', Lname = "Jenner", Dept = "Management", lønn = 20000)

Sjekk alle feltene til Python som heter Tuple
Ved hjelp av _fields -egenskapen kan vi alle feltene i den navngitte tupelen

Eksempel:

Fra samlinger import namedtuple
#Declaring the NamedTuple
Ansatt = NamedTuple ("Ansatt", ['Fname', 'Lname', 'Dept', 'Lønn'])
trykk (ansatt._Enger)

Produksjon:

('fname', 'lname', 'avd.', 'Lønn')

Hvordan du endrer verdien av namedtuple
En navngitt tuple er uforanderlig, og vi kan ikke endre attributtverdiene etter erklæring. Imidlertid gir den navngitte tonupelen .erstatte () metode som returnerer en kopi av den navngitte tupleen med en endret attributtverdi.

Eksempel:

Fra samlinger import namedtuple
#Declaring the NamedTuple
Ansatt = NamedTuple ("Ansatt", ['Fname', 'Lname', 'Dept', 'Lønn'])
#add verdier til den navngitte tupelen
E1 = Ansatt ('Sam', 'Smith', 'Marketing', 20000)
trykk (E1._replace (fname = 'John'))

Produksjon:

Ansatt (fname = 'John', lname = "Smith", Dept = "Marketing", lønn = 20000)

Konklusjon

For å avslutte denne python -opplæringen, lærte vi hva som heter Tillat i Python og hvordan vi skal erklære det. Namedtuple er en kombinasjon av Python Tuple og Python Dictionary der elementer får tilgang til med begge etiketten (nøkkelen) eller indeksnumrene. Vi kan bruke den navngitte tupelen som en vanlig python -tuplebeholder, og de kommer godt med når vi bare vil utføre hashing med tuple.