Comment créer et utiliser des tuples en Python

Un tuple est une collection d'objets Python immuables. Il peut contenir des éléments de tout type de données arbitraire (entier, chaîne, flottant, liste, etc.), ce qui en fait une structure de données flexible et puissante. Il fait partie du langage de base Python et est largement utilisé dans les programmes et projets Python.

Créer un tuple

Un tuple en Python peut être créé en plaçant tous les éléments séparés par des virgules entre parenthèses () .

 t1 = (1, 2, 3, 4)
t2 = ("Make", "Use", "Of")
t3 = (1.2, 5.9, 5.4, 9.3)

Les éléments du tuple sont immuables et ordonnés. Il permet des valeurs en double et peut avoir n'importe quel nombre d'éléments. Vous pouvez même créer un tuple vide. Les éléments d'un tuple peuvent être de n'importe quel type de données (entier, flottant, chaînes, tuple, etc.).

Créer un tuple vide

Un tuple vide peut être créé en utilisant des parenthèses d'ouverture et de fermeture vides.

 emptyTuple = ()

Créer un tuple avec un seul élément

Pour créer un tuple avec un seul élément, vous devez ajouter une virgule après l'élément pour le faire reconnaître comme un tuple par Python.

 # t1 is a tuple
t1 = ( 3.14, )
print( type(t1) )
# prints
<class 'tuple'>
 # t2 is not a tuple
t2 = ( 3.14 )
print( type(t2) )
# prints
<class 'float'>

Remarque: type () Function renvoie le type de classe de l'objet passé en paramètre.

En n'utilisant pas de virgule après l'élément, le type de classe t2 est 'float', il est donc obligatoire d'utiliser une virgule après l'élément lors de la création d'un tuple avec une seule valeur.

Création d'un tuple avec différents types de données

Les éléments du tuple peuvent être de n'importe quel type de données. Cette fonctionnalité rend le tuple polyvalent.

 tup1 = ( 'MUO', True, 3.9, 56, [1, 2, 3] )
print( tup1 )
# prints
('MUO', True, 3.9, 56, [1, 2, 3])

Création d'un tuple à l'aide du constructeur tuple ()

Les tuples peuvent également être créés à l'aide du constructeur tuple () . En utilisant le constructeur tuple (), vous pouvez convertir des séquences comme liste / dictionnaire en un tuple.

 tup1 = tuple( (1, 2, 3) )
print( tup1 )
# prints
(1, 2, 3)

Créer un tuple imbriqué

Les tuples peuvent facilement être imbriqués dans les autres tuples. Vous pouvez imbriquer le tuple à n'importe quel niveau souhaité.

 tup1 = (1, 2, 3)
tup2 = ( 'Hello', tup1, 45 )
print( tup2 )
# prints
('Hello', (1, 2, 3), 45)

Accéder aux éléments dans un tuple

Vous pouvez accéder aux éléments de tuple en utilisant le numéro d'index entre crochets. Le numéro d'index commence à 0. Tuple prend également en charge l'indexation négative:

  • -1: pointe vers le dernier élément
  • -2: pointe sur l'avant-dernier élément et ainsi de suite
 tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
print( tup1[0] )
print( tup1[5] )
print( tup1[-1] )
print( tup1[-9] )
# prints
M
S
F
M

Trancher un tuple

Vous pouvez accéder à une gamme d'éléments dans un tuple à l' aide du côlon: l' opérateur. Tuple prend également en charge l'opération de découpage à l'aide d'index négatifs.

 tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
# Prints elements from index 1(included) to index 6(excluded)
print( tup1[1:6] )
# Prints elements from start to index 8(excluded)
print( tup1[:8] )
# Prints elements from index 3(included) to the end
print( tup1[3:] )
# Prints elements from index -4(included) to index -1(excluded)
print( tup1[-4:-1] )
# prints
('A', 'K', 'E', 'U', 'S')
('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O')
('E', 'U', 'S', 'E', 'O', 'F')
('S', 'E', 'O')

Vérifier si un élément existe dans un tuple

Vous pouvez vérifier si un élément existe dans un tuple à l'aide du mot clé in .

 tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
if 'M' in tup1:
print("Yes, the element M exists in the tuple")
else:
print("Element not found in the tuple !!")

# prints
Yes, the element M exists in the tuple

Mise à jour des tuples

En tant que tuples aussi immuables, il n'est pas possible de changer leur valeur. Python lève une TypeError si vous essayez de mettre à jour le tuple.

 tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
tup1[0] = 'Z'
# Following error is thrown
tup1[0] = 'Z'
TypeError: 'tuple' object does not support item assignment

Mais il y a un hack si vous souhaitez mettre à jour votre tuple.

Modifier la valeur des éléments d'un tuple à l'aide de listes

Vous pouvez modifier la valeur des éléments de votre tuple à l'aide de listes en Python . Tout d'abord, vous devrez convertir le tuple en liste. Modifiez ensuite la liste comme vous le souhaitez. Enfin, reconvertissez la liste en tuple.

 tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp[0] = 4
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(4, 2, 3)

Ajouter de nouveaux éléments dans un tuple à l'aide de listes

Étant donné que les tuples ne sont pas modifiables, il n'est pas possible d'ajouter de nouveaux éléments dans un tuple. Python lancera une erreur comme:

 AttributeError: 'tuple' object has no attribute 'append

Encore une fois, vous pouvez utiliser notre hack (en utilisant des listes) pour gérer cela. Commencez par convertir le tuple en liste. Ajoutez ensuite de nouveaux éléments à la liste. Enfin, convertissez la liste en tuple.

Remarque: la méthode append () est utilisée en Python pour ajouter un nouvel élément à la fin de la liste.

 tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp.append(4)
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(1, 2, 3, 4)

Supprimer l'opération sur les tuples

Comme les tuples ne sont pas modifiables, il n'est pas possible de supprimer un élément du tuple. Si vous souhaitez supprimer le tuple complet, cela peut être fait à l'aide du mot-clé del .

 tup1 = ( 1, 2, 3 )
del tup1

Mais vous pouvez utiliser le même hack (en utilisant des listes) que vous avez utilisé pour modifier et ajouter des éléments de tuple.

Suppression d'éléments d'un tuple à l'aide de listes

Les éléments peuvent être supprimés du tuple à l'aide de listes en 3 étapes simples:

Étape 1: Convertissez le tuple en liste.

Étape 2: Supprimez les éléments de la liste à l'aide de la méthode remove ()

Étape 3: Convertissez la liste en un tuple.

 tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp.remove(1)
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(2, 3)

Emballage et déballage des tuples

Lors de la création d'un tuple, des valeurs sont attribuées. Cela s'appelle Packing a Tuple .

 # Example of packing a tuple
tup1 = ( 1, 2, 3)

Alors que l'extraction des valeurs dans des variables s'appelle Décompresser un tuple .

 # Example of unpacking a tuple
tup1 = ( 1, 2, 3 )
( one, two, three ) = tup1
print( one )
print( two )
print( three )
# prints
1
2
3

Bouclage avec des tuples Python

Les tuples sont des conteneurs itérables, tout comme les listes en Python. Vous pouvez facilement parcourir les éléments du tuple.

Utilisation de la boucle for

La boucle for de Python fonctionne en itérant à travers les éléments du conteneur.

 # Looping using for loop
tup1 = ( 1, 2, 3 )
for element in tup1:
print( element )
# prints
1
2
3

En relation: Comment utiliser les boucles For en Python

Utilisation des numéros d'index

Vous pouvez parcourir le tuple à l'aide d'index de tuples. Utilisez la fonction len () pour trouver la taille du tuple.

 tup1 = ( 1, 2, 3 )
for index in range(len(tup1)):
print( tup1[index] )

# prints
1
2
3

Améliorer l'efficacité de votre code

La structure de données du tuple étant immuable, sa vitesse de traitement est plus rapide que celle des listes. Ainsi, il fournit une optimisation aux programmes / projets Python. L'utilisation de cette structure de données puissante et polyvalente (tuples) dans vos programmes Python fera passer l'efficacité de votre code au niveau supérieur.