Pitone

Python Namedtuple

Python Namedtuple

Python presenta molte strutture dati integrate come elenchi, dizionari e tuple per archiviare e gestire i dati in modo efficiente. Il namedtuple è il contenitore simile a un dizionario disponibile nel modulo "collezioni". Simile ai dizionari, il namedtuple contiene anche le chiavi che sono mappate ai valori. Tuttavia, namedtuple consente l'accesso ai valori tramite chiavi e anche tramite indici. Rispetto ai dizionari Python, l'accesso ai valori tramite gli indici è la funzionalità aggiuntiva in namedtuple. Questo articolo spiega in dettaglio il namedtuple di Python con esempi.

Accesso ai valori dalla namedtuple

È possibile accedere ai valori all'interno di namedtuple nei seguenti modi:

  1. Usando i tasti
  2. Usando gli indici
  3. Usando la funzione getattr()

Poiché namedtuple converte il campo negli attributi, è quindi facile accedere ai valori utilizzando la funzione getattr().

Esempi

Ora vediamo alcuni esempi per capire la creazione e il funzionamento di namedtuple. Per creare e utilizzare la namedtuple, per prima cosa dobbiamo importare il modulo delle collezioni. Nell'esempio riportato di seguito, viene creata una tupla con nome per un insegnante. Le chiavi della namedtuple sono rispettivamente nome, età e dipartimento,. Si accede ai valori utilizzando indici e chiavi.

#importando il modulo collezioni
importare collezioni
#creazione di una tuple con nome per un insegnante
#nome, età e reparto sono le chiavi
Insegnante= collezioni.namedtuple('Insegnante',['nome','età','dipartimento'])
# creare un nuovo insegnante e aggiungere i valori
teacher_john = Teacher("John",29,"Informatica")
#accedere ai valori dell'insegnante utilizzando gli indici
print("Accesso ai valori usando gli indici:")
print("Il nome dell'insegnante è:",teacher_john[0])
print("L'età dell'insegnante è:",teacher_john[1])
print("Il dipartimento degli insegnanti è:",teacher_john[2])
#accedere ai valori dell'insegnante tramite i tasti
print("Accesso ai valori tramite i tasti:")
print("Il nome dell'insegnante è:",teacher_john.nome)
print("L'età dell'insegnante è:",teacher_john.età)
print("Il dipartimento degli insegnanti è:",teacher_john.Dipartimento)

Produzione

Ora accediamo ai valori usando la funzione getattr(). Il namedtuple e la chiave vengono passati come argomento alla funzione getattr().

#importando il modulo collezioni
importare collezioni
#creazione di una tuple con nome per un insegnante
#nome, età e reparto sono le chiavi
Insegnante= collezioni.namedtuple('Insegnante',['nome','età','dipartimento'])
# creare un nuovo insegnante e aggiungere i valori
teacher_john = Teacher("John",29,"Informatica")
#accedere ai valori dell'insegnante usando la funzione getattr()
print(getattr(teacher_john,"nome"))
print(getattr(teacher_john,"età"))
print(getattr(teacher_john,"dipartimento"))

Produzione

Operazioni popolari di namedtuple

Alcune funzioni popolari convertono le altre raccolte come elenchi, dizionari e tuple in namedtuple e restituiscono le informazioni namedtuple. Di seguito sono riportate le funzioni che convertono le altre raccolte in namedtuple:-

La funzione _make() converte un oggetto iterabile come list e tupla in un namedtuple. La funzione _asdict() crea un orderDict dal namedtuple e lo restituisce. Infine, l'operatore ** converte un dizionario in una namedtuple. Inoltre, le funzioni che restituiscono le informazioni namedtuple sono le seguenti:

La funzione _fields() restituisce tutti i campi del namedtuple mentre, la funzione _replace() sostituisce un particolare valore con un altro valore.

Implementiamo le funzioni come menzionato sopra nel nostro script Python per convertire le diverse raccolte in namedtuple.

#importando il modulo collezioni
importare collezioni
#creazione di una tuple con nome per un insegnante
#nome, età e reparto sono le chiavi
Insegnante= collezioni.namedtuple('Insegnante',['nome','età','dipartimento'])
# creare un nuovo insegnante e aggiungere i valori
teacher_john = Teacher("John",29,"Informatica")
#creare una lista
teacher_list =["Segna",30,"Amministrazione aziendale"]
#creare un dizionario
teacher_dict ='name':'Talor','age': 32,'department':'Economia'
#usando la funzione _make() per convertire la lista in namedtuple
print ("Conversione da elenco a namedtuple: ")
print(Maestro._make(teach_list))
#usando la funzione _asdict() per creare un OrderDict
print ("Creazione di OrderedDict: ")
print(insegnante_giovanni._asdict())
#usando il ** per convertire un dizionario in una namedtuple
print ("Conversione del dizionario in namedtuple: ")
print(Maestro(**teacher_dict))

Produzione

Ora usiamo le funzioni _fields() e _replace() per ottenere le informazioni sulle chiavi e sostituire le chiavi, rispettivamente.

#importando il modulo collezioni
importare collezioni
#creazione di una tuple con nome per un insegnante
#nome, età e reparto sono le chiavi
Insegnante= collezioni.namedtuple('Insegnante',['nome','età','dipartimento'])
# creare un nuovo insegnante e aggiungere i valori
teacher_john = Teacher("John",29,"Informatica")
#usando la funzione _fields per ottenere le chiavi di namedtuple
print("Le chiavi di namedtuple sono:")
print(Maestro._campi)
#usando la funzione _replace per sostituire il valore
print("Il valore di sostituzione di nome è:")
print(insegnante_giovanni._replace(nome = 'Paperino'))

Produzione
Nell'output, si può vedere che la funzione _fields restituisce le chiavi delle informazioni e la funzione _replace() sostituisce il nome con successo.

Conclusione

Il namedtuple è il contenitore simile a un dizionario presente nel modulo "collezioni". Contiene la chiave e mappa i valori sulla chiave. A differenza del dizionario Python, è possibile accedere ai valori namedtuples anche utilizzando gli indici e la funzione getattr(). Questo articolo spiega brevemente la namedtuple attraverso esempi.

Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...
Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...
Come cambiare i pulsanti sinistro e destro del mouse su PC Windows 10
È abbastanza normale che tutti i mouse dei computer siano progettati ergonomicamente per gli utenti destrimani. Ma sono disponibili dispositivi mouse ...