Archives Wild Code School
Python

2.6 Python - Tuples

Quête 12 sur 66 · 2 images archivées

Introduction

Un tuple en programmation est une suite de variables alignées dans une boite. Il s'agit d'une variable très... "attend une minute, j'ai un sentiment de déjà vu là. On dirai exactement l'intro de la quête sur les listes". Et oui ta mémoire RAM fonctionne bien, les listes et les tuples sont comme de faux jumeaux, avec une particularité qui se résumé en un mot (à caser au scrabble en mot compte triple et lettre compte double) : immutabilité.

Objectifs

✅ Comprendre la notion d'immuabilité (immutability in english) ✅ Manipuler des tuples

Sommaire

Immuable ou not immuable, tel est la question

Une variable (ou objet) est immuable si on ne peut pas le modifier après sa création. Il faut recréer un autre objet pour cela, ou stocker la modification dans une nouvelle variable. On appelle parfois ces variables des constantes.

Tu ne l'as peut-être pas remarqué, mais contrairement aux variables immuables (voir celles qui sont cochées dans l'image ci-dessus) les listes et les dictionnaires sont mutables. C'est à dire qu'on peut remplacer un élément par un autre.

python
>>> liste = ['a', 'b', 'c']
>>> liste[1] # On accède au deuxième élément de la liste
'b'
>>> liste[2] # Troisième élément
'c'
>>> liste[1] = 'B' # On remplace 'b' par 'B'
>>> liste
['a', 'B', 'c']

On ne peut faire ça que parce que les variables de type list sont mutables.

Il est parfois utile d'avoir des variables immuables. Par exemple, des ingénieurs aéronautiques qui travaillent sur le programme d'un nouveau moteur d'avion ne voudraient pas que la valeur de Pi soit modifiée par erreur durant l'exécution. L'immutabilité garantie qu'elle ne peut pas l'être.

Un objet immuable permet parfois d'améliorer les performances d'un programme, ce qui est intéressant quand on doit effectuer un calcul sur une grande quantité de données.

On peut donc dire que l'immutabilité est un pattern... ou un anti pattern, en fonction de ton obédience.

↗
C'est quoi objet immuable? - developpez.com
developpez.net

Les tuples

Les tuples ne sont rien d'autres que le pendant immuable des listes qui elles sont mutables. C'est donc une structure de données permettant de regrouper des données dans une boîte.

Elles permettent d'effectuer certaines choses comme sur une liste. On peut les parcourir, accéder à un élément, effectuer des calculs (par exemple additionner tous les nombres)...

Un dictionnaire s'écrit avec des accolades {dictionnaire}, une liste avec des crochets [liste], un tuple avec des parenthèses (tuple). La notion de dimension fonctionne aussi avec les tuples.

Une dernière chose. Je t'ai menti, ou plutôt j'ai pas été complètement exact. Les tuples en Python ne sont pas complètement immuables. Pour en savoir plus voir les ressources.

↗
Python Tuples are Immutable, Except When They're Mutable
inventwithpython.com
↗
Présentation des tuples - developpez.com
python.developpez.com
↗
Python Tuples - W3school
w3schools.com
↗
Programming Terms: Mutable vs Immutable
youtube.com
↗
Immutable vs Mutable Objects in Python
youtube.com

Challenge

Dans ce challenge tu vas t'entraîner à la manipulation de tuples.

Crée une copie du notebook ci-après et réalise les missions qui s'y trouve : 2.6 Python - Tuples

Une fois réalisé, poste le lien vers ton notebook en commentaire pour validation, sans oublier de le rendre accessible en lecture pour toute personne disposant du lien.

Critères de validation

  • Le notebook est accessible en lecture pour toutes personnes disposant du lien
  • Les exercices ont été correctement codés

Une solution ici

Ressources partagées sur cette quête