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]]