Dans la séance précédente sur les Listes, vous avez découvert cette notion et vu quelques propriétes.
Nous allons voir aujourd’hui d’autre concept sur les Listes.
Voici quelques petits exercices simple pour réactiver vos connaissances.
Ci-dessous, on donne la liste ex_liste:
ex_liste = [2,3,7,5,11]
ex_liste[3] = 8
ex_liste.append(15)
del ex_liste[1]
for element in ex_liste:
print(element)
liste_1 = []
for element in range(0, 5):
liste_1.append(element)
liste_2 = [p for p in range(0, 5)]
nombres = [3,17, 38, -10, 25, 72,-15,8,53]
nombres.sort()
nombres
couleurs = ['rouge', 'vert','orange','bleu', 'jaune','violet','marron']
couleurs.sort()
couleurs
melange = ['rouge',17,8,'orange','violet']
melange.sort()
melange
Que se passe-t-il pour la liste melange ?
1.b) Inversion sur une liste
nombres.reverse()
nombres
couleurs.reverse()
couleurs
melange.reverse()
melange
2.1 Ecrire une fonction « genere(n) » qui crée une liste de n nombres entiers générés au hasard entre 1 et 10.
Tester votre fontions pour les valeurs de n suivantes : 6 , 10 et 15.
from random import randint
def genere(n):
...
2.2 Ecrire une fonction « aleaTri(n) » qui recopie la liste précédente, crée aléatoirement, dans une autre liste, en supprimant les doublons. La liste finale doit être triée dans l’ordre croissant. Tester votre fontions pour les valeurs de n suivantes : 6 , 10 et 15.
def aleaTri (n):
...
matrice = [[2,7,4], [6,10,9], [3,2,5], [11,9,14]]
1.2 On donne la liste « multicouleurs » ci-dessous.
Quel est l'élément multicouleurs[2].
multicouleurs = [['rouge', 'vert'],['orange','bleu'],['jaune','violet']]
2.1 Méthode
Il est souvent plus pratique d’afficher une "Listes de listes" sous la forme d’un « tableau » ou matrice (objet
mathématique).
On va pouvoir utiliser des indices de position avec ces "Listes de listes".
Pour cela, nous allons utiliser les notions de "ligne" et de "colonne" définies dans une matrice ou un tableau.
Exemple :
matrice = [[2,7,4],
[6,10,9],
[3,2,5],
[11,9,14]]
Pour repérer un élément dans cette matrice, on va utiliser la notation :
Matrice[ligne][colonne]
Remarque
Attention l’indice de la première ligne et de la première colonne commence à 0.
2.2 Exercices
a) Quelle sont les valeurs référencées par les variables "a", "b" et "c" après l'exécution du programme ci-dessous ?
a = matrice[1][2]
b = matrice[3][0]
c = matrice[2][3]
Correction : a = 9 ; b = 11 et pour c: erreur-(matrice[2][3] , n'est pas un élément de matrice)
b) Expliquez ce que fait le programme suivant : Ensuite vérifier votre réponse en l'exécutant.
nb_colonne = 3
nb_ligne = 4
for ln in range(0, nb_ligne):
for cn in range(0, nb_colonne):
a = matrice[ln][cn]
print(a)
c) Ecrire une fonction (procédure) « affiche(matrice,ligne,colonne) » ayant pour paramètres une matrice,
son nombre de lignes et son nombre de colonnes et qui affiche la matrice sous la forme dans tableau.
Ensuite exécuter votre fonction pour "matrice"
def affiche_tab(matrice,ligne,colonne):
...
On a vu que l’on peut utiliser les listes pour créer des tableaux. Les tableaux servent à stocker des données dans un programme, ils ont l’avantage d’être modifiables et de changer de dimensions selon les besoins du programme. Nous allons définir une fonction qui vont créer des tableaux.
Par la suite, dans une prochaine séance, on va apprendre à remplir des tableaux à partir de listes de données et faire dun tri dans ces tableaux.
Ecrire une fonction crea_tab(ligne,colonne) ayant pour paramètres le nombre de lignes et le nombre de colonnes et qui va créer un tableau composé uniquement de zéros. Tester pour : nb_ligne = 5 ; nb_colonne = 3
def crea_tab(ligne,colonne):
...
On donne la liste valeurs=[2,3,5,7,11,13]. On veut afficher dans un tableau, les n premiers multiples des nombres de la table "valeurs". L'affichage doit être sous cette forme :
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
.
.
13 26 39 52 65 78 91 104 117 130
Ecrire une fonction « multiple(liste,ligne,collone) » ayant pour paramètres une liste, le nomnbre de lignes et le nombre de colonnes et qui affiche le tableau.
def multiple (liste,ligne,colonne):
...
def main():
Liste=[2,3,5,7,11,13]
nb_ligne=len(Liste)
nb_colonne=10
multiple (Liste,nb_ligne,nb_colonne)
main()