theme 9
TRANSCRIPT
1
THEME 9
APPROFONDIR LES STRUCTURES DE DONNÉES
(LISTES ET TUPLES)2011-03-31
2
LES LISTES: ACCÈS AUX ÉLÉMENTS
nombres=[5,38,10,25] Accéder à un seul élément (index)
Ex: print(nombres[2])10
Accéder à plusieurs éléments (slicing: découpage en tranches)
Ex: print(nombres[1:3])[38, 10] #tranche de type liste
Ex: print(nombres[2:3])[10]
Ex: print(nombres[2:])[10,25]
Ex: print(nombres[-1])25
Ex: print(nombres[-3])38
3
nombres = [17, 38, 10, 25, 72]
Trier une liste Ex: nombres.sort()
Inverser l’ordre des éléments Ex: nombres.reverse()
Retrouver l'index d'un élément (le premier rencontré) Ex: nombres.index(17)
Enlever un élément (le premier rencontré) Ex: nombres.remove(38)
Enlever un élément à un index Ex: del(nombres[2]) Ex: del(nombres[2:4])
LES LISTES: AUTRES OPÉRATIONS
4
LES LISTES: REMPLACEMENT D’ÉLÉMENTS
mots = ['jambon', 'fromage', 'confiture', 'chocolat']
Insertion dans une liste Ex: mots[2:2] = ['miel'] Ex: mots[5:5] =['saucisson', 'ketchup']
Suppression de la liste Ex: mots[2:2] = ['miel'] Ex: mots[2:5]=[] Ex: mots[1:3] = ['salade']
5
EXERCICE 9.1 Écrire un programme qui permet de simuler une gestion de la file
d’attente suivante dans un centre de services
['client 1','client 2','client 3','client 4','client 5','client 6','client 7'] Sans utiliser un compteur de boucles
Le premier client arrivé dans le centre de services est 'client 1‘
Le résultat de la simulation serait
['client 1'] est en cours de service, il reste les clients suivants dans la liste ['client 2','client 3','client 4','client 5','client 6','client 7'] dans la file['client 1'] servi['client 2'] est en cours de service, il reste les clients suivants dans la liste ['client 3','client 4','client 5','client 6','client 7'] dans la file['client 2'] servi
Etc..
6
EXERCICE 9.2
Écrire un programme qui permet de comparer deux listes
Par exemple comparer deux à deux les listes suivantes liste1=[76,23,14,2,33,18] liste2=[23,76,33,18,2,14] liste3=[2,56,85,12,1,1]
Pour cela nous utiliserons la fonction sort()
7
LES LISTES ET LA FONCTION RANGE La fonction range fournit un ensemble de nombres
(objet particulier appelé itérateur)
range( [départ,]arrivée[,pas])
Nous pouvons construire une liste à partir de cet ensemble avec list() Ex: list(range(2,10))
Nous pouvons aussi construire un tuple à partir de cet ensemble avec tuple() Ex: tuple(range(4,25,6))
8
LES TUPLES Types de données composites: chaînes, listes +
tuples
Chaines Vs listes Composition: caractères Vs différents types Non modifiables Vs modifiables
Tuple Composition: différents types Non modifiable
Syntaxe Ex: monTuple=('anne','cote',24,'etudiante')
9
EXERCICE Écrire un programme qui permet de charger des villes ainsi que
leurs coordonnées (latitude, longitude) enregistrées dans un fichier «villes.txt ».
Pour que ces informations ne soient pas modifiées tout au long du programme, nous désirons les inscrire dans des tuples.
Les différents tuples seront enregistrés dans une liste définie dans le programme
Toronto 43.6702330 -79.3867550
Montreal 45.5454470 -73.6390760
Vancouver 49.2635880 -123.1385650
Ottawa 45.4234940 -75.6979330
Calgary 51.0551490 -114.0624380
10
Similaires aux opérations sur les listes, sauf opérations de modification (ajout et suppression)
Longeur d’un tuple: len(monTuple)
Accès à un élément monTuple[3] monTuple[1:] (le slicing retourne un tuple)
LES TUPLES: LES OPÉRATIONS
11
SURCHARGE DE L’OPÉRATEUR + Applicable aux chaines, listes et tuples
Opérateur + (concaténation):uneChaine = "aaa bbb ccc " uneChaine = " --- "+uneChaine+ " --- "
liste = liste + ['jambon', 'fromage', 'confiture']liste1 = liste + [‘recette']
montuple = tuple1+tuple2montuple=tuple6+montuple+tuple3
12
SURCHARGE DE L’OPÉRATEUR * Applicable aux chaines, listes et tuples
uneChaine = "aaa bbb ccc c " *3uneChaine = unechaine+" "+unechaine*3
liste = liste*3liste1 = liste + [‘recette']
montuple= (tuple6*montuple+tuple3)*2