Utilisation de NamedTuple en Python

Utilisation de NamedTuple en Python
Python est livré avec un module intégré appelé Collections, qui fournit diverses classes et fonctions comme une alternative aux structures de données intégrées à Python telles que Dict, List, Set et Tuple.

Ce tutoriel Python discutera de NamedTuple, l'une des fonctions d'usine du module des collections. Nous passerons par tous les concepts importants de Python NamedTuple avec des exemples et une syntaxe.

Ce qui est nommé en python?

NamedTuple est fonction du module de collections Python, une extension du conteneur de données de tuple Python qui nous permet d'accéder aux éléments dans un tuple en utilisant des noms ou des étiquettes. Nous pouvons définir une nouvelle classe Tuple en important NamedTuple à partir du module de collections Python et utilisez la fonction d'usine NamedTuple (). En bref, un tuple nommé est une combinaison de tuple de tuple python et de données dict.

Python NamedTuple Syntaxe

à partir des collections Importation NamedTuple
TuPle_Name = NamedTuple (TynEname, Field_Names, *, Rename = false, par défaut = Aucun, module = Aucun)

Parmi les 6 attributs de NamedTuple (), seuls deux sont obligatoires, typename et fields_name, Le reste est facultatif.

Le typename représente le nom de la sous-classe Tuple, et il est utilisé pour créer des objets de type tuple.

Le feild_name L'attribut représente le nom d'étiquette des éléments Tuple. Il peut s'agir d'une chaîne séparée par des espaces «Fname lname Dept Salaire» ou une liste de chaîne [«fname», «lname», «dept», «salaire»].

Déclarant un nommé NamedTuple à Python

Maintenant, commençons par déclarer un nom.

à partir des collections Importation NamedTuple
#Declareau le NamedTuple
Employee = NamedTuple («Employé», [«Fname», «lname», «Dept», «Salaire»])
#Add Values ​​au Tuple nommé
E1 = Employé («Sam», «Smith», «Marketing», 20000)
Valeur #Access avec étiquette
Print ("Le nom de l'employé E1 est:", E1.fname + "" + e1.lname)
Valeur #ACCESS en utilisant la valeur d'index
Print ("Le département de l'employé E1 est:", E1 [2])

Sortir:

Le nom de l'employé E1 est: Sam Smith
Le département de l'employé E1 est: marketing

Accéder aux éléments à partir du NamedTuple à Python

Il existe trois façons d'accéder aux éléments à partir d'un tuple nommé en utilisant:

  • Index (comme un tuple)
  • Nom du champ / nom d'étiquette (comme un dictionnaire)
  • Méthode getAttr ()
à partir des collections Importation NamedTuple
#Declaging the NamedTuple:
Employee = NamedTuple («Employé», [«Fname», «lname», «Dept», «Salaire»])
#Adding Valeurs au tuple nommé:
E1 = Employé («Sam», «Smith», «Marketing», 20000)
#Accession Value Utilisation de la valeur de l'index:
Print ("Employé (Using Index)", E1 [0], E1 [1], E1 [2], E1 [3])
#Accession Valeur avec étiquette:
Print ("Employé (Utilisation d'étiquettes)", E1.Fname, E1.Lname, E1.Dept, E1.salaire)
#Accession Value Using GetAttr ():
print ("Employee (utilisant getAttr ())", getAttr (e1, 'fname'), getAttr (e1, 'lname'), getAttr (e1, 'Dept'), getAttr (e1, 'salaire')))

Sortir:

Employé (Using Index) Sam Smith Marketing 20000
Employé (Using Label) Sam Smith Marketing 20000
Employé (en utilisant getAttr ()) Sam Smith Marketing 20000

Travailler avec Python NamedTuple

Python NamedTuples est immuable
Comme un tuple normal, les noms nommés sont également immuables. Il lancera une erreur si nous attribuons une nouvelle valeur à un numéro d'index ou à l'étiquette existant.

Exemple:

à partir des collections Importation NamedTuple
#Declareau le NamedTuple
Employee = NamedTuple («Employé», [«Fname», «lname», «Dept», «Salaire»])
#Add Values ​​au Tuple nommé
E1 = Employé («Sam», «Smith», «Marketing», 20000)
E1.fname = "John" #error

Sortir:

AttributError: impossible de définir l'attribut

Convertir un python nommé Tuple en un dictionnaire Python
Un NamedTuple est traité comme un dictionnaire car chaque élément du tuple nommé est associé à une étiquette comme dans un dictionnaire Python.

Pour convertir un NamedTuple en dictionnaire, nous pouvons utiliser le ._asdict () Méthode.

Exemple:

À partir des collections Importation NamedTuple
#Declareau le NamedTuple
Employee = NamedTuple («Employé», [«Fname», «lname», «Dept», «Salaire»])
#Add Values ​​au Tuple nommé
E1 = Employé («Sam», «Smith», «Marketing», 20000)
Impression (E1._asdict ())

Sortir:

'fname': 'Sam', 'lname': 'Smith', 'Dept': 'Marketing', 'Salaire': 20000

Créez un objet NamedTuple NamedTuple à partir de Python ITable
Pour convertir un objet itérable comme le tuple, la liste, le réglage et le dictionnaire en NamedTuple, nous pouvons utiliser le NamedTuple's ._MAKE () Méthode.

Exemple:

À partir des collections Importation NamedTuple
#Declareau le NamedTuple
Employee = NamedTuple («Employé», [«Fname», «lname», «Dept», «Salaire»])
#liste
E1 = [«Rahul», «Sharma», «Marketing», 20000]
#tuple
e2 = ('ravi', 'kumar', 'marketing', 20000)
imprimer (employé._Make (E1))
imprimer (employé._Make (E2))

Sortir:

Employé (fname = 'Rahul', lname = "sharma", dept = "marketing", salaire = 20000)
Employé (fname = 'ravi', lname = "kumar", dept = "marketing", salaire = 20000)

Convertir un dictionnaire Python en tuple nommé
Il y a deux façons de convertir un dictionnaire Python en un nom.

Nous pouvons soit utiliser le ** opérateur ou Dictionary Values ​​() méthode.

Exemple:

À partir des collections Importation NamedTuple
#Declareau le NamedTuple
Employee = NamedTuple («Employé», [«Fname», «lname», «Dept», «Salaire»])
#dictionnaire
e1 = 'fname': 'Sonia', 'lname': 'Jenner', 'Dept': 'Management', 'Salaire': 20000
#Using ** opérateur
Impression (employé (** E1))
#en utilisant ._MAKE () Méthode
imprimer (employé._Make (E1.valeurs()))

Sortir:

Employé (fname = 'Sonia', lname = "Jenner", Dept = "Management", salaire = 20000)
Employé (fname = 'Sonia', lname = "Jenner", Dept = "Management", salaire = 20000)

Vérifiez tous les champs de Python nommé Tuple
En utilisant la propriété _fields, nous pouvons tous les champs du tuple nommé

Exemple:

À partir des collections Importation NamedTuple
#Declareau le NamedTuple
Employee = NamedTuple («Employé», [«Fname», «lname», «Dept», «Salaire»])
imprimer (employé._des champs)

Sortir:

(«fname», «lname», «département», «salaire»)

Comment modifier la valeur de NamedTuple
Un nom de nom est immuable, et nous ne pouvons pas modifier ses valeurs d'attribut après déclaration. Cependant, le NamedTuple fournit le .Remplacer () Méthode qui renvoie une copie du NamedTuple par une valeur d'attribut modifiée.

Exemple:

À partir des collections Importation NamedTuple
#Declareau le NamedTuple
Employee = NamedTuple («Employé», [«Fname», «lname», «Dept», «Salaire»])
#Add Values ​​au Tuple nommé
E1 = Employé («Sam», «Smith», «Marketing», 20000)
Impression (E1._replace (fname = 'John'))

Sortir:

Employé (fname = 'John', Lname = "Smith", Dept = "Marketing", salaire = 20000)

Conclusion

Pour conclure ce tutoriel Python, nous avons appris ce qui est nommé Tuple dans Python et comment le déclarer. NamedTuple est une combinaison de tuple Python et de dictionnaire Python dans lequel les éléments sont accessibles à la fois avec l'étiquette (clé) ou les numéros d'index. Nous pouvons utiliser le NamedTuple comme un récipient de tuple Python normal, et ils sont utiles lorsque nous voulons effectuer un hachage à l'aide de tuple uniquement.