![](//s1.studylibfr.com/store/data-gzf/fb1e02be862b8c1d1951dbcef4c5b34c/1/004644882.htmlex.zip/bg2.jpg)
TD1_correction_2012.py
# fct qui construit un dico[Ville1 Ville2]= distance
def build_dico(data):
dico={}
for ligne in data:
# appel de la fonction space pour chaque elem de ma liste data (=chaque ligne)
position=space(ligne)
#recup de la ville1 avec le 1er espace
ville1=ligne[:position[0]]
#recup de la ville2 avec 2eme espace
ville2=ligne[position[0]+1:position[1]]
#construction de la cle avec ville1 et ville2
cle=ville1+" "+ville2
# recup de la distance (encore en string) sans le retour chariot (-1)
dist=ligne[position[1]+1:-1]
dico[cle]=dist
return dico
#fct qui renvoie le trajet (cle) et la distance mini
def min_dist(dico):
mini=3000000000000000
for cle in dico:
if float(dico[cle]) < mini:
#obligation de convertir la string en float
mini=float(dico[cle])
trajet_mini=cle
return trajet_mini, mini
#fct qui renvoie le trajet (cle) et la distance maxi
def max_dist(dico):
maxi=0
for cle in dico:
if float(dico[cle]) > maxi:
maxi=float(dico[cle])
trajet_maxi=cle
return trajet_maxi, maxi
def search_city(dico,ville):
l=[]
for cle in dico:
if ville in cle:
l=l+[[cle, dico[cle]]]
#l.append([cle, dico[cle]])
return l
def write_file(res, outputfile):
f=open(outputfile,"w")
for ligne in res:
f.write(" ".join(ligne)+"\n")
#f.write(ligne[0]+" "+ligne[1]+"\n")
f.close()
####### debut du pg
result=load("villes.txt")
#print pour debug
#print(result)
dicovilles=build_dico(result)
#print pour debug
#print(dicovilles)
#recup dans 2 variables su trajet min et de la dist min
traj_min, distmin=min_dist(dicovilles)
print(traj_min, distmin)
traj_max, distmax=max_dist(dicovilles)
print(traj_max, distmax)
Page 2