Skip to content

Latest commit

 

History

History
114 lines (72 loc) · 2.8 KB

tuples.rst

File metadata and controls

114 lines (72 loc) · 2.8 KB

Tuples

Un tuple est tout à fait similaire à une liste : il s'agit d'une collection d'objets [1] . On crée un tuple en séparant les objets par des des virgules , et en les encadrant éventuellement par des parenthèses (...).

.. ipython:: python

    type((1,2,3))
    a = 1,2,3
    type(a)

Quand faut-il encadrer un tuple avec des parenthèses ? Par exemple si l'on crée une liste dont certains arguments sont des tuples.

.. ipython:: python

    [(1, 2), (3, 4)]
    [1, 2, 3, 4]
    [(1, 2), (3, 4)] == [1, 2, 3, 4]

Ou bien quand on on apelle une fonction dont un ou plusieurs arguments sont des tuples.

f((1, 2), (3, 4))   # fonction de deux arguments (deux tuples)
f(1, 2, 3, 4)       # fonction de quatre arguments (quatre entiers)

Les opérateurs + et += fonctionnent comme pour les listes.

.. ipython:: python

    (1,2) + (3,4)
    a = (1,2)
    a += (3,4)
    a


On peut accéder aux éléments d'un tuple de la même manière qu'on accède aux éléments d'une liste.

.. ipython:: python

    a = (1, 'a', 2, 'b', 3, 'c', 4, 'd', 5, 'e', 6, 'f')
    a[3]
    a[2:]
    a[:5]
    a[-3]
    a[2:9:2]
    a[8:1:-3]

Par contre, on ne peut pas modifier un tuple : on ne peut ni modifier ses éléments, ni en ajouter, ni en enlever.

.. ipython:: python
    :okexcept:

    s = (1, 2, 3)
    s[0] = 4

A nouveau, la fonction len renvoie la longueur d'un tuple.

.. ipython:: python

    len((1.23, 'abc', 45))



Affectations multiples

Les tuples permettent d'affecter des valeurs à plusieurs variables en même temps [2].

.. ipython:: python

    a, b, c = 1, 2, 3
    a
    b
    c

Cela permet notamment d'échanger élégamment les valeurs de deux variables [3].

.. ipython:: python

    a, b = 1, 2
    a
    b
    a, b = b, a
    a
    b

Notes

[1]Il s'agit exactement de la notion de uplet en mathématiques. L'appellation tuple provient en fait de l'anglais. En effet, en anglais, on parle de "quadruple", "quintuple", etc.. et plus généralement de n-tuple tandis qu'en français, on emploie les termes "quadruplet", "quintuplet", etc.. et de manière générale n-uplet. Néanmoins, la terminologie anglo-saxonne s'est imposée en ce qui concerne Python.
[2]

On peut également procéder à des affectations multiples à l'aide de listes.

.. ipython:: python

    [a, b, c] = [1, 2, 3]
    a
    b
    c

[3]

A nouveau, on peut également utiliser des listes pour échanger les valeurs de deux variables.

.. ipython:: python

    [a, b] = [1, 2]
    a
    b
    [a, b] = [b, a]
    a
    b