Les tuples

(actualisé le )

Un tuple, contrairement à une liste , est une séquence non mutable : on ne peut pas réaffecter ses éléments ou en ajouter. Un tuple est délimité par des parenthèses et ses éléments sont séparés par des virgules.

  1. mon_tuple = (élément_1, élément_2, élément_3 ,...)

Exemples :

  1. mes_fruits = ("Pomme","Poire","Banane")
  2. print(type(mes_fruits))
  3. '''
  4. <class 'tuple'>
  5. '''
  6. print(mes_fruits)
  7. '''
  8. ('Pomme', 'Poire', 'Banane')
  9. '''

Télécharger

Remarque : bien qu’en théorie il soit possible de construire des tuples composés d’éléments de différents types, dans la pratique il est recommandé d’y stocker une collection d’objets de même type.

Propriétés :

  • Les tuples sont des collections ordonnées d’objets, ces objets pouvant être de types différents.
  • Les tuples sont non mutables, c’est-à-dire que l’on ne pas peut modifier leur contenu : ils sont généralement utilisés pour stocker des constantes.
  • L’accès aux éléments d’un tuple ce fait par un simple appel nom_tuple[indice].
  • La numérotation de l’indice commence à partir de zéro.
  • On peut utiliser une numérotation négative (comptée à partir du dernier élément du tuple).

Exemples :

  1. # Appel d'un élément du tuple via un indice positif
  2. print(mes_fruits[0])
  3. '''
  4. Pomme
  5. '''
  6. print(mes_fruits[2])
  7. '''
  8. Banane
  9. '''
  10. # Appel d'un élément du tuple via un indice négatif
  11. print(mes_fruits[-1])
  12. '''
  13. Banane
  14. '''
  15. # Longueur du tuple
  16. print(len(mes_fruits))
  17. '''
  18. 3
  19. '''
  20. # Tentative de modification d'un élément du tuple via un indice
  21. mes_fruits[0] = "Raisin"
  22. '''
  23. TypeError: 'tuple' object does not support item assignment
  24. '''
  25. # Tentative d'extension du tuple
  26. mes_fruits[3] = "Cerise"
  27. '''
  28. TypeError: 'tuple' object does not support item assignment
  29. '''
  30. # Tentative de suppression d'un élément du  tuple
  31. del(mes_fruits[0])
  32. '''
  33. TypeError: 'tuple' object doesn't support item deletion
  34. '''
  35.  
  36. # Création d'un tuple comportant un seul élément (ne pas oublier la virgule à la fin)
  37. pi = (3.14,)
  38. print(type(pi))
  39. '''
  40. <class 'tuple'>
  41. '''
  42. print(pi)
  43. '''
  44. (3.14,)
  45. '''

Télécharger

Slicing

En Python, la technique de "slicing" permet le découpage de structures de données séquentielles telles que les tuples.

  1. mes_fruits = ("Pomme","Poire","Banane")
  2.  
  3. # Extraction des éléments d'indice 0 inclus à 2 exclu
  4. print(mes_fruits[0:2])
  5. '''
  6. ('Pomme', 'Poire')
  7. '''
  8. # Extraction de tous les éléments sauf le dernier
  9. print(mes_fruits[:-1])
  10. '''
  11. ('Pomme', 'Poire')
  12. '''
  13. # Extraction des éléments de l'indice 0 inclus à 3 exclu par pas de 2
  14. print(mes_fruits[0:3:2])
  15. '''
  16. ('Pomme', 'Banane')
  17. '''

Télécharger

Parcourir un tuple

Un boucle for permet de parcourir tous les éléments d’un tuple :

  1. mes_fruits = ("Pomme","Poire","Banane")
  2. for element in mes_fruits :
  3.     print(element)

Télécharger

Test d’appartenance

L’opérateur in teste si un élément fait partie d’une liste.

  1. print("Poire" in mes_fruits)
  2. '''
  3. True
  4. '''

Télécharger

Concaténation de tuples

  1. tuple1 = ("a", "b" , "c")
  2. tuple2 = (1, 2, 3)
  3.  
  4. tuple3 = tuple1 + tuple2
  5. print(tuple3)
  6. '''
  7. ('a', 'b', 'c', 1, 2, 3)
  8. '''

Télécharger

Modifier le contenu d’un tuple

Une fois un tuple créé, on ne peut pas modifier ses valeurs. Les tuples sont non mutables Il existe une solution de contournement : on peut convertir le tuple en liste, modifier la liste et reconvertir la liste en tuple.

  1. mes_fruits = ("Pomme","Poire","Banane")
  2. fruits = list(mes_fruits)
  3. fruits[1] = "Kiwi"
  4. mes_fruits = tuple(fruits)
  5. print(mes_fruits)
  6. '''
  7. ('Pomme', 'Kiwi', 'Banane')
  8. '''

Télécharger