Dictionnaires : Atlas Mondial
L'usage de la calculatrice n'est pas autorisé
Durée: 1h
On considère un dictionnaire dont les clés sont les noms des pays et les valeurs sont une liste de données pour chaque pays.
Notre dictionnaire s'appelle atlas
et il contient les données suivantes:
Pays | Capitale | Population | PIB par hab | Émissions de CO2 par personne | Inégalité des revenus |
---|---|---|---|---|---|
France | Paris | 67 348 000 | 44 032 | 5,0 | 32,7 |
Royaume-Uni | Londres | 66 040 229 | 44 920 | 5,7 | 33,2 |
Italie | Rome | 59 499 534 | 40 923 | 6,1 | 35,4 |
Allemagne | Berlin | 82 793 800 | 52 555 | 9,6 | 31,7 |
Japon | Tokyo | 126 440 000 | 42 066 | 10,4 | 32,1 |
États-Unis | Washington D.C. | 329 035 000 | 59 927 | 15,5 | 41,5 |
Canada | Ottawa | 37 067 000 | 46 509 | 16,7 | 34,0 |
Question 1
Donner une instruction qui permet de rajouter le Maroc Ă ce dictionnaire.
Population : 35 361 000
PIB par habitant : 8 225
Émissions de CO2 par personne : 1,7
Indice d'inégalité des revenus : 39,5
Corrigé
atlas['Maroc']=['Rabat',35361000,8225,1.7,39.5]
Question 2
Donner une instruction qui retourne la liste des Capitales.
Corrigé
[atlas[pays][0] for pays in atlas]
Question 3
Donner une instruction qui retourne le total d'Ă©mission de CO2 pour un pays pays
quelconque.
Corrigé
atlas[pays][1]*atlas[pays][3]
Question 4
Écrire une fonction qui modifie le dictionnaire atlas
en ajoutant Ă chaque pays une valeur qui correspond au total d'Ă©mission du pays.
Corrigé
def modif(D):
for elt in D:
D[elt].append(D[elt][1]*D[elt][3])
modif('atlas')
Question 5
Écrire une fonction maxem(D)
qui retourne, Ă partir d'un dictionnaire D
, le nom du pays dont les émissions de CO2 par habitant sont les plus élevées.
Corrigé
def maxem(D):
maxP=''
maxV=0
for elt in D:
if D[elt][3]>maxV:
maxV=D[elt][3]
maxP=elt
return maxP
Question 6
Écrire une fonction retourne(D)
qui renvoie, Ă partir d'un dictionnaire comme atlas
, un dictionnaire qui admet pour clés les noms des capitales et pour valeurs les noms des pays.
Corrigé
def retourne(D):
newD={D[elt][0]:elt for elt in D}
return newD
ou bien
def retourne(D):
newD={}
for elt in D:
newD[D[elt][0]]=elt
return newD
Question 7
On souhaite modifier notre dictionnaire pour que le PIB par habitant, qui est donné dans le tableau en dollars, soit à présent donné en dirhams. Écrire une fonction conversion(D)
qui permet de faire cette transformation. Au taux actuel: 1 dollar = 10 dirhams
Corrigé
def conversion(D):
for elt in D:
D[elt][2]=D[elt][2]*10
return D
Question 8
On a deux dictionnaires atlas1
et atlas2
qui contiennent, à eux deux, l'ensemble des données de tous les pays de la planète. Écrire une fonction pollupas(D1,D2)
qui retourne une liste qui contient les noms des 5 pays qui polluent le moins.
Corrigé
On suppose nos 2 dictionnaires modifiés grâce à la question 4.
On commence par Ă©crire une fonction qui retourne le nom du pays qui pollue le moins.
def minem(D):
minP=''
minV=10000000000
for elt in D:
if D[elt][5]<minV:
minV=D[elt][5]
minP=elt
return minP
def pollupas(D1,D2):
D1.update(D2)
D3=D1.copy()
res=[]
for i in range(5):
pays=minem(D3)
res.append(pays)
del D3[pays]
return res