Aller au contenu

Dictionnaires et géographie

L'usage de la calculatrice n'est pas autorisé

Durée: 1h

On donne deux dictionnaires Reg et Dep, le premier a pour clés les noms des régions françaises et a pour valeurs la liste des noms des départements qui font parti de chaque région et le deuxième a pour clés un nom de département et pour valeurs les numéros des départements.

Question 1

Donner une instruction qui retourne le nombre de régions.

len(Reg)

Question 2

Donner une instruction qui retourne les noms des départements de la région "Grand Est".

Reg["Grand Est"]

Question 3

Faire une fonction nombre_dep(R) qui, appliquée à un nom de région R retourne le nombre de départements de la région R.

def nombre_dep(R):
    return len(Reg[R])

Question 4

Faire une fonction depmax(Reg) qui retourne le nom de la région qui a le plus de départements.

def depmax(Reg):
    Rmax=''
    nbremax=0
    for R in Reg.keys():
        nbred=nombre_dep(R)
        if nbred>nbremax:
            Rmax=R
            nbremax=nbred

Question 5

Faire une fonction region_de(D) qui à partir d'un nom de département D retourne le nom de la région à laquelle il appartient.

def region_de(D):
    for R in Reg.keys():
        if D in Reg[R]:
            return R

Question 6

Faire une fonction numdepregion(R) qui prend en argument une région Ret retourne la liste des numéros de ses départements.

def numdepregion(R):
    L=[]
    for e in Reg[R]:
        L.append(Dep[e])

Question 7

Faire une fonction region_denum(D) qui a un numéro de département D associe la région.

def region_denum(D):
    Depinv={Dep[e]:e for e in Dep}
    for R in Reg.keys():
        if Depinv[D] in Reg[R]:
            return R 

Question 8

Faire une fonction memereg(D1,D2) qui prend en arguments deux noms de départements et qui retourne True si les deux département sont dans la même région et False sinon.

def memereg(D1,D2):
    for R in Reg.keys():
        if D1 in Reg[R] and D2 in Reg[R]:
            return True
    return False
La version de Ghali
def memereg(D1,D2):
    return region_de(D1)==region_de(D2)