Maison > développement back-end > Tutoriel Python > Que sont les tuples nommés de Python et comment se comparent-ils aux tuples normaux ?

Que sont les tuples nommés de Python et comment se comparent-ils aux tuples normaux ?

Linda Hamilton
Libérer: 2024-12-04 05:35:10
original
522 Les gens l'ont consulté

What are Python's Named Tuples and How Do They Compare to Regular Tuples?

Que sont les tuples nommés en Python ?

Les tuples nommés sont des types d'objets légers et faciles à créer qui améliorent la convivialité des tuples en fournissant des attributs nommés. Examinons leur utilisation et leur comparaison avec les tuples normaux.

Création et utilisation de tuples nommés

Pour créer des tuples nommés, nous utilisons la fonction d'usine collections.namedtuple. Par exemple, pour définir un tuple nommé pour des points :

from collections import namedtuple
Point = namedtuple('Point', 'x y')
Copier après la connexion

Des instances de ce tuple nommé peuvent être créées comme des tuples normaux :

pt1 = Point(1.0, 5.0)
pt2 = Point(2.5, 1.5)
Copier après la connexion

Les avantages de l'utilisation de tuples nommés deviennent évidents lorsque faisant référence à leurs attributs :

line_length = sqrt((pt1.x - pt2.x)**2 + (pt1.y - pt2.y)**2)  # Object-like syntax
Copier après la connexion

Avantages des tuples nommés par rapport aux tuples réguliers Tuples

  1. Lisibilité améliorée :Les attributs de tuple nommés fournissent des noms explicites, ce qui rend le code plus facile à comprendre.
  2. Notation de type objet :Nommé les instances de tuple sont accessibles via un déréférencement de variable de type objet (par exemple, pt1.x), éliminant ainsi le besoin d'index référencement.
  3. Vérification de type : Les tuples nommés permettent la vérification de type, réduisant ainsi le risque d'erreurs dues à des incompatibilités d'index.

Cas d'utilisation des tuples nommés

Les tuples nommés sont recommandés lorsque :

  • Les structures de données sont constituées de types de valeurs immuables.
  • La notation d'objet et les attributs nommés améliorent la lisibilité.
  • Les types de valeurs simples sont transmis en tant que paramètres aux fonctions, améliorant ainsi la clarté des fonctions.

Au-delà des noms de base. Tuples

Les tuples nommés peuvent même remplacer les classes immuables par uniquement des champs. Ils peuvent également servir de classes de base pour les tuples nommés personnalisés :

class Point(namedtuple('Point', 'x y')):
    [...]  # Define additional methods
Copier après la connexion

Listes nommées et tuples nommés mutables

Il n'y a pas d'équivalent intégré pour les "listes nommées" en Python. Cependant, pour les types d'enregistrements mutables, il existe des recettes ou des modules tiers qui permettent de définir de nouvelles valeurs pour les attributs :

from rcdtype import recordtype
Point = recordtype('Point', 'x y')
pt1 = Point(1.0, 5.0)
pt1.x = 2.0  # Mutable!
Copier après la connexion

Les tuples nommés peuvent être manipulés comme des dictionnaires en utilisant pt1._asdict(), offrant un accès facile à leurs champs et leur compatibilité avec les opérations du dictionnaire.

Conclusion

Les tuples nommés sont un outil puissant en Python, offrant un moyen propre et intuitif de représenter les données, tout en offrant une lisibilité, une vérification de type et une personnalisation améliorées. Que vous travailliez avec des types de valeurs simples ou des structures d'enregistrement complexes, les tuples nommés peuvent améliorer l'efficacité et la clarté de votre code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal