TD J1 : listes python 1D, 2D, slices¶
Exercice 1 (création de liste par compréhension)¶
Q1 Définir par compréhension une copie de la liste mots
dont tous les éléments on été mis en majuscule (pour info, si ch
est une variable de type chaine de caractères, alors ch.upper()
renvoie une copie de cette chaine en majuscule).
mots = ['sinus', 'cosinus', 'tangente', 'exponentielle', 'logarithme']
mots_maj = # à comléter
print(mots_maj)
Q2 Définir par compréhension une liste composée des multiples de 3 compris entre 0 et 100 (essayer d'envisager plusieurs solutions)
# à compléter
Exercice 2 (Utilisation des slices en 1D)¶
Q3. Créer de trois manières différentes la liste des nombres impairs compris entre 10 et 50 :
- La première avec une compréhension de liste.
- La deuxième, en créant d'abord la liste des entiers entre 10 et 50, puis en extrayant les nombres impairs de celle-ci par slicing.
- La troisième avec une boucle classique.
# méthode 1 : avec une compréhension de liste
# méthode 2 : avec un slice
# méthode 3 : avec une boucle classique
Exercice 3 ( quelques méthodes applicables sur une liste)¶
On va voir dans cet exercice les méthodes append
, remove
, index
, reverse
et sort
que l'on peut appliquer à une liste. Il en existe d'autres, on pourra consulter Internet...
Q4. À partir de la liste mots
ci-dessous, saisir dans la cellule suivante, les instructions ci-dessous dans l'ordre et afficher après chaque étape ce que devient la liste...
mots = ['sinus', 'cosinus', 'tangente', 'exponentielle', 'logarithme']
mots.append('inverse') # ajoute un élément
mots.remove('cosinus') # on enlève un élément connu
mots.index('tangente') # récupère l'index d'un élément connu
mots.reverse() # renverse l'ordre des éléments
mots.sort() # tri les éléments dans l'ordre alphabetique
m = mots.pop(2) # enlève et renvoie l'élément d'index donné
del mots[-1] # supprime l'élément d'index donné
del mots[1:] # même chose avec un slice
mots = ['sinus', 'cosinus', 'tangente', 'exponentielle', 'logarithme']
mots.append('inverse')
print("après append mots devient :", mots)
mots.remove('cosinus') # on enlève un élément connu
print("après remove mots devient :", mots)
# à compléter...
Q5. Que contient la liste mot
après toutes les étapes ?
Réponse : ... à compléter
Exercice 4 (manipuler des listes 2D)¶
On considère la liste 2D suivante :
mat = [ [1,2,3],
[4,5,6],
[7,8,9]
]
Q6. Comment faire pour accéder à la ligne 3 de la matrice mat
par exemple ?
Q7. Même question avec la colonne 3. Est-ce aussi facile ?
Q8. Puisque une liste 2D est simplement une liste de liste, on peut utiliser les créations par compréhension.
En imbriquant 2 for
écrire une instruction python pour créer par compréhension la matrice 5x5 dont l'élément ligne i, colonne j vaut i*j.
list_m = # à compléter
print(list_m)
Q9. Écrire en une seule ligne une commande python qui calcule la somme $\displaystyle \sum_{i=1}^{5}\sum_{j=1}^{5} i\times j$.
Conclusion : cette façon de stocker les tableaux à double entrée n'est pas très souple. La manipulation des lignes et des colonnes n'est pas toujours très aisées. Le module numpy
spécialisé dans la manipulation des tableaux va pallier à ce manque.