Comment travailler avec les tuples

2022-10-10 11:40:23  lundi  7615 mots  

Un tuple est une collection servant à créer des listes complexes, dans lesquelles un tuple peut être imbriqué dans un autre. Ceci vous permet donc de créer des hiérarchies【计算机】层次. Une hiérarchie peut être aussi simple que l’arborescence 树状 de votre disque dur, mais il peut aussi s’agir par exemple de l’organigramme complet de votre entreprise. L’idée est que vous pouvez créer des structures de données complexes avec un tuple.

Les tuples sont « immutables », ce qui signifie que vous ne pouvez pas les changer. Vous pouvez créer un nouveau tuple portant le même nom, et le modifier d’une certaine manière, mais vous ne pouvez pas le faire avec un tuple existant. Par contre, les listes, elles, sont mutables, et donc modifiables. Cette nature des tuples peut paraître un désavantage, mais cette immutabilité a toutes sortes de vertus, notamment en termes de sécurité et de rapidité. De plus, ce type d’objet est plus facile à gérer avec des systèmes multiprocesseurs.

Les étapes qui suivent vous montrent comment vous pouvez interagir avec un tuple dans Python :

  1. Ouvrez une fenêtre de Python en mode Shell.
    Vous voyez l’indicatif habituel.
  2. Tapez MyTuple = ('Rouge', 'Vert', 'Bleu') et appuyez sur Entrée.
    Comme nous l’avons vu dans le Chapitre 12, les éléments d’une liste sont placés entre des crochets droits. Ceux d’un tuple sont délimités par des parenthèses.
    Python crée un tuple contenant trois chaînes.
  3. Tapez MyTuple et appuyez sur Entrée.
    Python affiche le contenu de MyTuple (voir la Figure). Remarquez que les chaînes sont délimitées par des apostrophes, même si vous avez utilisé des guillemets pour les définir.

    Figure : Les tuples utilisent des parenthèses, pas des crochets droits.

  4. Tapez dir(MyTuple) et appuyez sur Entrée.
    Python affiche la liste des fonctions que vous pouvez utiliser avec les tuples (voir la Figure). Remarquez le peu de fonctions utilisables, ainsi que la présence des fonctions index() et count().
    Les apparences sont parfois trompeuses. Par exemple, vous pouvez ajouter de nouveaux éléments avec la fonction __add__(). Lorsque vous travaillez avec des objets Python, regardez toutes les entrées avant de prendre la bonne décision.

    Figure : Peu de fonctions semblent utilisables avec les tuples.

    >>> MyTuple = ('Rouge', 'Vert', 'Bleu')
    >>> MyTuple
    ('Rouge', 'Vert', 'Bleu')
    >>> dir(MyTuple)
    ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
  5. Tapez MyTuple = MyTuple.__add_(('Pourpre',)) et appuyez sur Entrée.
    Ce code ajoute un tuple à MyTuple, et place le résultat dans une nouvelle copie de MyTuple. L’ancienne version de MyTuple est détruite après cet appel.

    La fonction __add__() accepte uniquement des tuples en entrée. Ceci signifie que l’ajout doit être placé entre parenthèses. De plus, lorsque vous créez un tuple ne comprenant qu’une seule entrée, celle-ci doit être suivie d’une virgule. C’est une règle propre 独有的规则 à Python. À défaut, vous obtiendrez un message d’erreur comme celui-ci :

    Figure : Cette nouvelle copie de MyTuple contient une entrée supplémentaire.

  6. Tapez MyTuple et appuyez sur Entrée.
    L’ajout à MyTuple apparaît en fin de liste, comme l’illustre la Figure. Notez qu’il se situe au même niveau que les autres éléments.
  7. Tapez MyTuple = MyTuple.__add__(('Jaune', ('Orange', 'Noir'))) et appuyez sur Entrée.
    Cette étape ajoute trois nouvelles couleurs. Cependant, Orange et Noir sont insérés en tant que tuple à l’intérieur du tuple principal, ce qui crée une hiérarchie. Ces deux entrées sont traitées comme une seule entité à l’intérieur du tuple principal.
    Vous pouvez remplacer la fonction __add__() par l’opérateur de concaténation 串联运算符. Si vous vouliez par exemple ajouter la couleur Magenta en début de liste, vous pourriez taper MyTuple = ('Magenta',) + MyTuple.
  8. Tapez MyTuple[4] et appuyez sur Entrée.
    Python affiche le membre de MyTuple ayant pour rang 4, c’est-à-dire Jaune. Les tuples utilisent des indices pour accéder à leurs membres individuels, exactement comme les listes. Vous pouvez également définir une plage 范围. Tout ce qu’il est possible de faire avec des indices dans une liste l’est également 也可以 avec un tuple.
  9. Tapez MyTuple[5] et appuyez sur Entrée.
    Vous voyez maintenant un tuple qui contient les chaînes Orange et Noir. Bien entendu, votre but n’est pas d’utiliser ces éléments sous la forme d’un tuple.
    Vous pouvez déterminer si un certain indice a renvoyé un autre tuple, plutôt qu’une valeur, en testant son type. Dans ce cas, par exemple, l’instruction type(MyTuple[5]) == tuple renverrait la valeur True.
  10. Tapez MyTuple[5][0] et appuyez sur Entrée.
    La sortie va maintenant afficher la couleur Orange, autrement dit le premier élément du tuple ajouté lors de l’Étape 7. La Figure illustre la progression de cet exemple. Les indices apparaissent toujours dans l’ordre de leur niveau dans la hiérarchie.

En utilisant une combinaison d’indices et la fonction __add__() (ou l’opérateur de concaténation), vous pouvez créer des applications évolutives basées sur des tuples. Par exemple, vous pouvez supprimer un élément d’un tuple en le rendant égal à une plage de valeurs. Vous pourriez supprimer de cette manière le tuple qui contient les chaînes Orange et Noir en tapant MyTuple = MyTuple[0:5].

Figure : Les indices permettent d’accéder aux membres individuels d’un tuple.

Commentaire