TD 4 - Structures de données

DUT Informatique
Programmation en Python
Ann´ee 2014–2015
TD 4 - Structures de donn´
ees
Exercice 1. Tuples
Qu’affiche le programme ci-dessous ?
1 l = [1 , 5 , 10]
2 x, y, z = l
3 x, z = z, y
4 print ( x , y , z )
Exercice 2. D´
e-compactage de tuples
Simplifiez le programme suivant.
1 coord = a t t e n t e C l i c ( )
2 x = coord [ 0 ]
3 y = coord [ 1 ]
4 print ( ’(’ + s t r ( x ) + ’, ’ + s t r ( y ) + ’)’ )
Exercice 3. Set et Dict
1. Qu’affiche le code suivant ?
1 d = { 0 : 4 , 3 : 5 , 5 : 8 , 7 : 7 , 8 : 9}
2 s1 = s e t (d)
3 print ( s 1 )
2. Cr´eez l’ensemble s2 des valeurs du dictionnaire dict.
3. Qu’affiche le code suivant ?
1
2
3
s1 | s2
s1 & s2
s 1 <= s 2
4. Comment savoir combien il y a d’´el´ements dans s1 et si un ´el´ement donn´e est dedans ?
Exercice 4. Dictionnaires
Que fait le programme ci-dessous ?
1 d={}
2 f o r i in range ( 1 0 0 ) :
3
d [ i ]= l i s t ( r a n g e ( i ) )
4 nb=i n t ( i n p u t ( ’Votre nombre :’ ) )
5 i f nb i n d :
6
print ( d [ nb ] )
Exercice 5. Erreurs
Donnez la ou les erreurs dans le code suivant :
1
2
3
4
5
6
7
d = {}
d [ ’aaaa ’ ] = 2
d[(1 , 2 , 3)] = [1 , 2 , 3]
d[[1 ,2 ,3]]=5
s =(1 ,2 ,3)
print ( s [ 0 ] )
s [0]=4
Exercice 6. Copie de dictionnaires
1. Qu’affiche le programme suivant :
1
2
3
4
d1={’a’ : 0 , ’b’ : 1}
d2=d1
d2 [ ’a’]+=1
print ( d1 , d2 )
2. Comment affecter une copie du dictionnaire d1 dans le dictionnaire d2 ?
Exercice 7. Dictionnaires et listes
Qu’affiche le programme ci-dessous ?
1
2
3
4
5
6
7
8
9
10
d = {}
lst = [1 ,2 ,3 ,4 ,5]
d [ ’a’ ] = l s t
d [ ’b’ ] = l s t
d [ ’c’ ] = d [ ’a’ ]
d [ ’d’ ] = l s t ∗1
lst [0] = 5
d [ ’c’ ] [ 1 ] = 3
d [ ’d’ ] [ 2 ] = 10
print ( d [ ’a’ ] , d [ ’b’ ] , d [ ’c’ ] , d [ ’d’ ] )
Exercice 8. Dictionnaires et fonctions
Quelle est la valeur du dictionnaire d a` la fin du code ci-dessous :
1 def i n i t ( d ) :
2
for x in d :
3
d [ x]=0
4
5 d={’a’ : ’bbb ’ , ’b’ : 1 5 , ( 1 2 , 4 ) : [ ] }
6 i n i t (d)
Page 2
Exercice 9. Copie de tableau `
a deux dimensions
1. Qu’affiche le code suivant :
1 tab = [ [ 0 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 0 , 9 ] ]
2 tab [ 0 ] [ 0 ] += 1
3 tab [ 2 ] [ 1 ] = 2∗ tab [ 1 ] [ 0 ]
4 print ( tab )
5 tab2 = tab
6 tab2 [ 1 ] [ 1 ] = 0
7 print ( tab )
8 tab3 = tab ∗1
9 tab2 [ 1 ] [ 1 ] = 5
10 print ( tab , tab2 , tab3 )
´
2. Ecrivez
une fonction copieListedeListes qui prend une liste de listes en entr´ee et en
renvoie une copie.
Exercice 10. Fr´
equences
´
1. Ecrivez
une fonction freqChaine qui prend une chaˆıne de caract`eres en param`etre et renvoie un dictionnaire contenant pour chaque lettre de la chaˆıne son nombre d’occurrences.
Par exemple, freqChaine(’abbabba!’) renverra { ’a’ : 3 , ’b’ : 4, ’!’ : 1}.
´
2. Ecrivez
une fonction maxDic qui prend en param`etre un dictionnaire (dont les valeurs sont
des naturels) et renvoie la cl´e correspondant `a la plus grande valeur.
Par exemple, maxDic({’a’: 3, ’b’ : 5 , ’c’ : 0, ’d’ : 10}) renverra ’d’.
´
3. Ecrivez
une fonction triCles qui prend un dictionnaire (dont les valeurs sont des naturels)
et renvoie la liste des cl´es du dictionnaire par ordre de valeurs d´ecroissantes dans le
dictionnaire.
Par exemple, triCles({’a’: 3, ’b’ : 5 , ’c’ : 0, ’d’ : 10}) renverra [’d’, ’b’,
’a’, ’c’].
Page 3