Python tukee eräänlaista konttisanakirjaa nimeltä namedtuple() läsnä moduulissa kokoelmat . Tässä artikkelissa aiomme nähdä, kuinka NameTuple luodaan ja toimintoja NamedTuplessa.
Mikä on NamedTuple Pythonissa?
Sisään Python , NamedTuple on sisällä kokoelmat moduuli . Se tarjoaa tavan luoda yksinkertaisia, kevyitä tietorakenteita, jotka muistuttavat luokkaa, mutta ilman täyden luokan määrittelyä. Kuten sanakirjat, ne sisältävät avaimia, jotka on hajautettu tiettyyn arvoon. Päinvastoin, se tukee sekä pääsyä avainarvosta että iteraatiota, toimintoa, joka sanakirjoja puute.
Python NamedTuple Syntaksi
namedtuple(tyyppinimi, kentän_nimet)
- typename – Namedtuplen nimi.
- kentän_nimet – Nimettyjen kenttään tallennettujen attribuuttien luettelo.
Esimerkki: NamedTuplen koodin toteutus näytetään Python .
java lukee csvPython 3
# Python code to demonstrate namedtuple() from collections import namedtuple # Declaring namedtuple() Student = namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # Access using index print('The Student age using index is : ', end='') print(S[1]) # Access using name print('The Student name using keyname is : ', end='') print(S.name)>
Lähtö
The Student age using index is : 19 The Student name using keyname is : Nandini>
Toiminnot NamedTuplessa
Alla on seuraavat toiminnot, jotka voidaan tehdä komennolla namedtuple():
- Luo NameTuple
- Pääsytoiminnot
- Muunnostoiminnot
- Lisätoiminnot
Luo NameTuple Pythonissa
Tämä luo uuden namedtuple-luokan käyttämällä namedtuple()-funktiota tiedostosta kokoelmat moduuli. Ensimmäinen argumentti on uuden luokan nimi ja toinen argumentti on luettelo kenttien nimistä.
TietokoneverkotPython 3
from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) p = Point(x=1, y=2) print(p.x, p.y)>
Lähtö
1 2>
Pääsytoiminnot
Pythonin nimetyt kaksikot tarjoavat käteviä tapoja käyttää kenttiään. Alla on joitain Pythonissa NamedTuplelle tarjottuja pääsytoimintoja:
- Pääsy hakemiston perusteella
- Pääsy avaimen nimellä
- Pääsy käyttämällä getattr()
Pääsy hakemiston mukaan
Namedtuple():n attribuuttiarvot ovat järjestyksessä ja niihin pääsee käsiksi indeksinumerolla toisin kuin sanakirjoissa, joihin indeksillä ei päästä. Tässä esimerkissä pääsemme oppilaan hakemistoon.
Python 3
# importing 'collections' for namedtuple() import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # Access using index print('The Student age using index is : ', end='') print(S[1])>
Lähtö
The Student age using index is : 19>
Pääsy avaimen nimellä
Pääsy avaimen nimellä on myös sallittu, kuten sanakirjoissa. Tässä esimerkissä käytämme oppilaan nimeä avainnimellä.
Python 3 # importing 'collections' for namedtuple() import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # Access using name print('The Student name using keyname is : ', end='') print(S.name)>
Lähtö
The Student name using keyname is : Nandini>
Pääsy käyttämällä getattr()
Tämä on vielä yksi tapa päästä arvoon antamalla argumentiksi namedtuple ja avainarvo. Tässä esimerkissä käytämme getattr()-komentoa päästäksemme opiskelijan tunnukseen annetussa namedtuplessa.
Python 3 # importing 'collections' for namedtuple() import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # Access using getattr() print('The Student DOB using getattr() is : ', end='') print(getattr(S, 'DOB'))>
Lähtö
The Student DOB using getattr() is : 2541997>
Muunnostoiminnot
Namedtuples tarjoaa muutamia hyödyllisiä muunnostoimintoja, joita voit käyttää muiden tietotyyppien kanssa Python . Alla on seuraavat muunnostoiminnot, jotka tarjotaan Pythonin namedtuplesille:
teollisuus ja tehdas
- _make()
- _asdict()
- Käytä ** (kaksoistähti) -operaattoria
Muunnos käyttämällä _make()
Tätä funktiota käytetään palauttamaan a namedtuple() iterablesta meni argumenttina. Tässä esimerkissä käytämme _make()-funktiota listan li muuntamiseen namedtupleksi.
Python 3 # importing 'collections' for namedtuple() import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # initializing iterable li = ['Manjeet', '19', '411997'] di = {'name': 'Nikhil', 'age': 19, 'DOB': '1391997'} # using _make() to return namedtuple() print('The namedtuple instance using iterable is : ') print(Student._make(li))>
Lähtö
The namedtuple instance using iterable is : Student(name='Manjeet', age='19', DOB='411997')>
Muunnostoiminto käyttämällä _asdict()
Tämä funktio palauttaa the OrderedDict() muodostettuna namedtuple()-parametrin kartoitetuista arvoista. Tässä esimerkissä käytämme _asdict()-funktiota syöttöluettelon muuntamiseen namedtuple-instanssiksi.
Python 3 import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # initializing iterable li = ['Manjeet', '19', '411997'] # initializing dict di = {'name': 'Nikhil', 'age': 19, 'DOB': '1391997'} # using _asdict() to return an OrderedDict() print('The OrderedDict instance using namedtuple is : ') print(S._asdict())>
Lähtö
The OrderedDict instance using namedtuple is : OrderedDict([('name', 'Nandini'), ('age', '19'), ('DOB', '2541997')])>
** (kaksoistähti) -operaattorin käyttäminen
Tätä funktiota käytetään sanakirjan muuntamiseen namedtuple(). Tässä esimerkissä käytämme ** muuntaaksesi syöttöluettelon namedtupleksi.
java papuPython 3
import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # initializing iterable li = ['Manjeet', '19', '411997'] # initializing dict di = {'name': 'Nikhil', 'age': 19, 'DOB': '1391997'} # using ** operator to return namedtuple from dictionary print('The namedtuple instance from dict is : ') print(Student(**di))>
Lähtö
The namedtuple instance from dict is : Student(name='Nikhil', age=19, DOB='1391997')>
Lisätoiminnot
Siinä on joitain lisätoimintoja Python NamedTuplesille:
- _kentät
- _korvata()
- __Uusi__()
- __getnewargs__()
_kentät
Tätä dataattribuuttia käytetään saamaan kaikki avaimenimet ilmoitetusta nimiavaruudesta. Tässä esimerkissä käytämme _kenttiä saadaksemme kaikki nimiavaruuden avainnimet ilmoitettuun.
Python 3 import collections Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # using _fields to display all the keynames of namedtuple() print('All the fields of students are : ') print(S._fields)>
Lähtö
All the fields of students are : ('name', 'age', 'DOB')>
_korvata()
_replace() on kuin str.replace(), mutta kohdistaa nimettyihin kenttiin( ei muuta alkuperäisiä arvoja). Tässä esimerkissä käytämme _replace()-funktiota korvataksemme nimen Nandini ja Manjeet.
Python 3 import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # ._replace returns a new namedtuple, # it does not modify the original print('returns a new namedtuple : ') print(S._replace(name='Manjeet'))>
Lähtö
returns a new namedtuple : Student(name='Manjeet', age='19', DOB='2541997')>
__Uusi__()
Tämä funktio palauttaa Student-luokan uuden esiintymän ottamalla arvot, jotka haluamme määrittää nimetyn monikon avaimille. Tässä esimerkissä käytämme __new__() palauttamaan opiskelija-luokan uuden esiintymän.
Python 3 import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') # Student.__new__ returns a new instance of Student(name,age,DOB) print(Student.__new__(Student,'Himesh','19','26082003'))>
Lähtö
Student(name='Himesh', age='19', DOB='26082003')>
__getnewargs__()
Tämä funktio palauttaa nimetyn monikon tavallisena monikona. Tässä esimerkissä teemme saman käyttämällä __getnewargs__().
Python 3 import collections # Declaring namedtuple() Student = collections.namedtuple('Student', ['name', 'age', 'DOB']) # Adding values S = Student('Nandini', '19', '2541997') H=Student('Himesh','19','26082003') # .__getnewargs__ returns the named tuple as a plain tuple print(H.__getnewargs__())>
Lähtö
('Himesh', '19', '26082003')>