Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

la liste

permet de créer des collections très souples :

[0, 12]
[2.3, 'abc']
[True, [0, 12], 'chaine', [2.3, 'abc']]
list
[True, [0, 12], 'chaine', [2.3, 'abc']]
True
[True, '-', 'chaine', [2.3, 'abc']]
[2.3, 'abc']
True
[True, 'chaine']

liste et opérateurs

de nombreux opérateurs sont définis aussi sur les listes

[1, 2, 3, 4, 5, 6]
True
True
True

itérations

approfondi dans une section ultérieure
mais dans sa forme la plus simple: for .. in .. :

True
-
chaine
[2.3, 'abc']

listes et performances

À savoir
la liste est une structure de données très souple du coup elle n’est que relativement efficace
elle est surtout optimisée pour être modifiée par la fin
habituellement à base des méthodes append et pop

['a']
['a', 'b']
['a', 'b', 'c']
c
b
a

MAIS cela n’est un problème qu’avec des données nombreuses - 104
du coup pour des preuves de concept la liste est TRÈS flexible et pratique

le tuple

similaire à la liste, mais qu’on ne peut pas modifier
(on parle d’objets non mutables - ou immuables)
ne sera pas approfondi dans ce primer
on va voir tout de suite à quoi ça peut bien servir

(12, 'abc')

l’ensemble

une autre forme de container, mais assez différent :

{12, 'abc'}
{12, True, 'abc'}
{12, True, 'abc'}
True
{(2, 3), 12, True, 'abc'}
{(2, 3), True, 'abc'}

itérations sur l’ensemble

forme la plus simple, idem : for .. in ..
attention qu’un ensemble n’a pas d’ordre naturel
depuis Python-3.7 le parcours se fait dans l’ordre des insertions

(2, 3)
True
abc

le dictionnaire

aussi un container, mais cette fois c’est conceptuellement
un ensemble d’associations de la forme

clé → valeur
{'alice': 25, 'bob': 32}
32
{'alice': 25, 'bob': 32, 'eve': 40}
{'alice': 50, 'bob': 32, 'eve': 40}
{'alice': 50, 'bob': 32}
{'alice': 50, 'bob': 32}
True

digression : affectation multiple

a=10, b=20
a=10, b=20

dans ce contexte c’est un gadget, mais c’est intéressant parfois
car les termes à droite de = sont tous évalués avant de faire les affectations

a=20, b=10

itération sur un dictionnaire

même remarque que les ensembles : pas d’ordre naturel
depuis Python-3.7 le parcours se fait dans l’ordre des insertions

alice → 50
bob → 32

cette forme est à mettre en rapport avec l’affectation multiple
dans ce sens que ça revient à faire ceci :

alice → 50
bob → 32

fonctions et arguments multiples (1)

optionnel

mécanisme pour définir un nombre quelconque d’arguments à une fonction

premier argument: 1
les autres: () - de type <class 'tuple'>
premier argument: 1
les autres: (2,) - de type <class 'tuple'>
item 2
premier argument: 1
les autres: (2, 3) - de type <class 'tuple'>
item 2
item 3

bien entendu on ne peut définir qu’un seul paramètre de ce genre, et il doit apparaitre en dernier dans la signature de la fonction
Si on pouvait en mettre plusieurs, il y aurait ambigüité quant à qui reçoit quoi.

fonctions et arguments multiples (2)

optionnel

dans l’autre sens, si j’ai un container avec des objets que je veux passer individuellement à une fonction

premier argument: 1
les autres: (2, 3) - de type <class 'tuple'>
item 2
item 3
premier argument: 1
les autres: (2, 3) - de type <class 'tuple'>
item 2
item 3

à l’appel de la fonction par contre on peut passer plusieurs arguments étoilés, leurs composants sont simplement ajoutés dans l’ordre aux arguments de la fonction.

résumé

Python propose des types prédéfinis