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
© Copyright 2024 ExpyDoc