Logo de kxs.frCours d'informatique pour le lycée et la prépa

Compréhensions

Présentation

Une compréhension est un moyen « pythonesque » de créer un tableau où on écrit directement la boucle dans le tableau qu'on veut créer :

>>> [i for i in range(5)]
[0, 1, 2, 3, 4]

La méthode peut paraitre déroutante au début mais elle est finalement assez intuitive.

On peut également créer des tableaux à deux dimensions avec cette méthode :

>>> [[0 for j in range(5)] for i in range(5)]
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

Prenez bien le temps de comprendre ces deux exemples.

On peut aussi ajouter des conditions sur les valeurs à garder :

>>> [i for i in range(10) if i % 2 == 0]
[0, 2, 4, 6, 8]

Cette compréhension peut se dire : « i pour les valeurs entre 0 et 10 si i est pair ».

Exercices

1) Créer le tableau [0, 1, 2, 3, 4] sans compréhension.

2) Quel est le résultat de cette compréhension ?

["NSI" for i in range(4)]

3) Quel tableau est créé par la compréhension suivante ?

[ i + j for i in range(4) for j in range(3)]

4) Décrire simplement ce qui est créé par la compréhension suivante ?

[[i+j for j in range(11)] for i in range(11)]

5) Créez une compréhension qui affiche tous les nombre impairs entre 1 et 100.

6) Trouver un compréhension qui affiche ce tableau :

[0, 1, 8, 27, 64]

7) Trouver un compréhension qui affiche ce tableau :

[[0, 0, 0, 0, 0, 0],
[0, 4, 8, 12, 16, 20],
[0, 8, 16, 24, 32, 40],
[0, 12, 24, 36, 48, 60],
[0, 16, 32, 48, 64, 80],
[0, 20, 40, 60, 80, 100]]