13.07.2015 Views

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1. Séances notées 12# remarque générale : si le fichier logpdf.txt contient <strong>de</strong>s lignes# vi<strong>de</strong>s à <strong>la</strong> fin, il se produira une erreur à <strong>la</strong> ligne 34 (date = m [1])# car <strong>la</strong> matrice mat contiendra <strong>de</strong>s lignes avec une seule colonne <strong>et</strong> non quatre.# Il suffit soit <strong>de</strong> supprimer les lignes vi<strong>de</strong>s du fichier logpdf.txt# soit <strong>de</strong> ne pas les prendre en compte lors <strong>de</strong> <strong>la</strong> lecture <strong>de</strong> ce fichier. 45# question 3# La métho<strong>de</strong> sort trie <strong>la</strong> liste mais comment ?# Il est facile <strong>de</strong> trier une liste <strong>de</strong> nombres mais une liste <strong>de</strong> couples <strong>de</strong># nombres ? L’exemple montre que <strong>la</strong> liste est triée selon le premier élément <strong>de</strong> 50# chaque couple. Pour les cas où <strong>de</strong>ux couples ont un premier élément en commun,# les éléments semblent triés selon le second élément. L’exemple suivant le monte :l = [(1, "un"), (3, "<strong>de</strong>ux",), (2, "<strong>de</strong>ux"), (1, "hun"), (1, "un"), (-1, "moinsun")]l.sort (reverse = True) 55print l # affiche [(3, ’<strong>de</strong>ux’), (2, ’<strong>de</strong>ux’), (1, ’un’),# (1, ’un’), (1, ’hun’), (-1, ’moinsun’)]# question 4<strong>de</strong>f dix_meilleures (dico) : 60# dans c<strong>et</strong>te fonction on crée une liste <strong>de</strong> couples (valeur,clé) ou# <strong>la</strong> clé représente une date <strong>et</strong> valeur le nombre <strong>de</strong> téléchargement# pour c<strong>et</strong>te dateli = []for d in dico : 65cle = dvaleur = dico [cle]li.append ( ( valeur, cle ) )li.sort (reverse = True)r<strong>et</strong>urn li [0:10] 70dix = dix_meilleures (dico_date)print dix # <strong>la</strong> première date est (283, ’26/Sep/2007’)# les quatre premières dates correspon<strong>de</strong>nt aux quatre premiers TD en 2007 à l’<strong>ENSAE</strong> 75# question 5# <strong>la</strong> date est en colonne 1, le document en colonne 3# on fait un copier-coller <strong>de</strong> <strong>la</strong> fonction compte_date en changeant un paramètre<strong>de</strong>f compte_document (mat) : 80d = { }for m in mat :doc = m [3] # clé, 3 au lieu <strong>de</strong> 1 à <strong>la</strong> question 2if doc in d : d [doc] += 1else : d [doc] = 1 85r<strong>et</strong>urn ddix = dix_meilleures ( compte_document (mat) )print dix # le premier document est# (323, ’/mywiki/Enseignements?.....targ<strong>et</strong>=python_cours.pdf’), 90# question 6<strong>de</strong>f heure (s) :hs = s [0:2]# on extrait <strong>la</strong> partie correspondant à l’heurer<strong>et</strong>urn int (hs) # on r<strong>et</strong>ourne <strong>la</strong> conversion sous forme d’entiers 95# question 7# on recommence avec un copier-coller<strong>de</strong>f compte_heure (mat) :d = { } 100for m in mat :h = m [2] # clé, 2 au lieu <strong>de</strong> 1 à <strong>la</strong> question 2cle = heure (h)if cle in d : d [cle] += 140

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!