theme 9

12

Click here to load reader

Upload: salmazen

Post on 09-Jun-2015

268 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Theme 9

1

THEME 9

APPROFONDIR LES STRUCTURES DE DONNÉES

(LISTES ET TUPLES)2011-03-31

Page 2: Theme 9

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

Page 3: Theme 9

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

Page 4: Theme 9

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

Page 5: Theme 9

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

Page 6: Theme 9

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()

Page 7: Theme 9

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

Page 8: Theme 9

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')

Page 9: Theme 9

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

Page 10: Theme 9

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

Page 11: Theme 9

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

Page 12: Theme 9

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