Python

Python Namedtuple

Python Namedtuple

Python propose de nombreuses structures de données intégrées telles que des listes, des dictionnaires et des tuples pour stocker et gérer efficacement les données. Le nametuple est le conteneur de type dictionnaire disponible dans le module « collections ». Semblable aux dictionnaires, le tuple nommé contient également les clés qui sont mappées aux valeurs. Cependant, le namedtuple permet d'accéder aux valeurs via des clés et ainsi que via des index. Par rapport aux dictionnaires Python, l'accès aux valeurs via des index est la fonctionnalité supplémentaire de namedtuple. Cet article explique en détail le tuple nommé Python avec des exemples.

Accéder aux valeurs à partir du tuple nommé

Les valeurs à l'intérieur du nametuple sont accessibles des manières suivantes :

  1. En utilisant les touches
  2. En utilisant les index
  3. En utilisant la fonction getattr()

Comme le nametuple convertit le champ en attributs, il est donc facile d'accéder aux valeurs à l'aide de la fonction getattr().

Exemples

Voyons maintenant quelques exemples pour comprendre la création et le fonctionnement de namedtuple. Pour créer et utiliser le tuple nommé, nous devons d'abord importer le module collections. Dans l'exemple ci-dessous, un tuple nommé pour un enseignant est créé. Les clés du tuple nommé sont respectivement le nom, l'âge et le département. Les valeurs sont accessibles à l'aide d'index et de clés.

#importation du module de collecte
importer des collections
#créer un tuple nommé pour un enseignant
#nom, âge et département sont les clés
Enseignant = collections.nametuple('Enseignant',['nom','âge','département'])
# créer un nouvel enseignant et ajouter les valeurs
instituteur_john = Enseignant("Jean",29,"Informatique")
#accès aux valeurs de l'enseignant à l'aide d'index
print("Accès aux valeurs à l'aide d'index :")
print("Le nom de l'enseignant est :",teacher_john[0])
print("L'âge de l'enseignant est :",teacher_john[1])
print("Le département des enseignants est :",teacher_john[2])
#accès aux valeurs de l'enseignant à l'aide des clés
print("Accès aux valeurs à l'aide des touches :")
print("Le nom de l'enseignant est :",teacher_john.Nom)
print("L'âge de l'enseignant est :",teacher_john.âge)
print("Le département des enseignants est :",teacher_john.département)

Production

Accédons maintenant aux valeurs à l'aide de la fonction getattr(). Le nametuple et la clé sont passés en argument à la fonction getattr().

#importation du module de collecte
importer des collections
#créer un tuple nommé pour un enseignant
#nom, âge et département sont les clés
Enseignant = collections.nametuple('Enseignant',['nom','âge','département'])
# créer un nouvel enseignant et ajouter les valeurs
instituteur_john = Enseignant("Jean",29,"Informatique")
#accès aux valeurs de l'enseignant à l'aide de la fonction getattr()
print(getattr(teacher_john,"nom"))
print(getattr(teacher_john,"âge"))
print(getattr(teacher_john,"département"))

Production

Opérations populaires de namedtuple

Certaines fonctions populaires convertissent les autres collections telles que les listes, les dictionnaires et les tuples en namedtuple et renvoient les informations namedtuple. Voici les fonctions qui convertissent les autres collections en namedtuple :-

La fonction _make () convertit un objet itérable comme une liste et un tuple en un nametuple. La fonction _asdict() crée un orderDict à partir du tuple nommé et le renvoie. Enfin, l'opérateur ** convertit un dictionnaire en un tuple nommé. De plus, les fonctions qui renvoient les informations du tuple nommé sont les suivantes :

La fonction _fields() renvoie tous les champs du tuple nommé alors que la fonction _replace() remplace une valeur particulière par une autre valeur.

Implémentons les fonctions mentionnées ci-dessus dans notre script Python pour convertir les différentes collections en namedtuple.

#importation du module de collecte
importer des collections
#créer un tuple nommé pour un enseignant
#nom, âge et département sont les clés
Enseignant = collections.nametuple('Enseignant',['nom','âge','département'])
# créer un nouvel enseignant et ajouter les valeurs
instituteur_john = Enseignant("Jean",29,"Informatique")
#créer une liste
liste_enseignant =["Mark",30,"Administration des affaires"]
#créer un dictionnaire
Teacher_dict ='name':'Talor','age': 32,'department':'Economics'
#utilisation de la fonction _make() pour convertir la liste en namedtuple
print ("Conversion de liste en tuple nommé : ")
imprimer (Professeur._make(liste_enseignants))
#utilisation de la fonction _asdict() pour créer un OrderDict
print ("Faire le OrderedDict: ")
print(prof_jean._asdict())
#en utilisant le ** pour convertir un dictionnaire en un nametuple
print ("Conversion du dictionnaire en namedtuple: ")
print(Professeur(**teacher_dict))

Production

Utilisons maintenant les fonctions _fields() et _replace() pour obtenir les informations des clés et remplacer les clés, respectivement.

#importation du module de collecte
importer des collections
#créer un tuple nommé pour un enseignant
#nom, âge et département sont les clés
Enseignant = collections.nametuple('Enseignant',['nom','âge','département'])
# créer un nouvel enseignant et ajouter les valeurs
instituteur_john = Enseignant("Jean",29,"Informatique")
#utilisation de la fonction _fields pour obtenir les clés de namedtuple
print("Les clés de namedtuple sont :")
imprimer (Professeur._des champs)
#utilisation de la fonction _replace pour remplacer la valeur
print("La valeur de remplacement du nom est :")
print(prof_jean._replace(nom = 'Donald'))

Production
Dans la sortie, on peut voir que la fonction _fields renvoie les clés d'information, et la fonction _replace() remplace le nom avec succès.

Conclusion

Le nametuple est le conteneur de type dictionnaire présent dans le module « collections ». Il contient la clé et mappe les valeurs à la clé. Contrairement au dictionnaire Python, les valeurs namedtuples sont également accessibles à l'aide des index et de la fonction getattr(). Cet article explique brièvement le tuple nommé à travers des exemples.

Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...
Comment afficher la superposition OSD dans les applications et jeux Linux en plein écran
Jouer à des jeux en plein écran ou utiliser des applications en mode plein écran sans distraction peut vous couper des informations système pertinente...
Top 5 des cartes de capture de jeu
Nous avons tous vu et aimé des gameplays en streaming sur YouTube. PewDiePie, Jakesepticye et Markiplier ne sont que quelques-uns des meilleurs joueur...