Les dictionnaires
Un petit cours sur les dictionnaires par Alexsolex. Vous retrouverez le message original ICI
Petite précision, les dictionnaires ne sont utiles que si on besoin de les référencer par un 'pointeur'.
Ils sont très pratiques dès lors qu'on a plusieurs infos à mémoriser pour une entrée
Imaginons un carnet d'adresse qui référence pour un utilisateur son téléphone et sa ville :
coordonnees= {
"alexsolex" : ("0123456","paris") ,
"toto" : ("0234198548","Babeloued") ,
"bernard" : ("8765321","moscou")
}
Ca veut dire que l'élément "alexsolex" de mon carnet est égal à un tuple ("0123456","paris").
print coordonnees["alexsolex"]
>>> ("0123456","paris")
tel,ville = coordonnees["alexsolex"]
print tel
>>> 0123456
print ville
>>> paris
mais le tuple peut être lu par un pointeur de liste numérique :
user = coordonnees["alexsolex"]
print user[0]
>>> 0123456
print user[1]
>>> paris
ou encore
print coordonnees["alexsolex"][0]
>>> 0123456
print coordonnees["alexsolex"][1]
>>> paris
Si on veut ordonner les entrées de la liste pour un affichage par exemple :
listenoms = coordonnees.keys() #on prend les clés du dictionnaire (les noms)
listenoms.sort() #on trie sur place la liste (elle se réaffecte d'elle même avec les entrées triées)
for nom in listenoms:
print "%s\n\ttél: %s\n\tville: %s" % (nom, coordonnees[nom][0], coordonnees[nom][1])
ca donne :
alexsolex
tél: 0123456
ville: paris
bernard
tél: 8765321
ville: moscou
toto
tél: 0234198548
ville: Babeloued
ATTENTION, un dictionnaire ne respecte pas l'ordre dans lequel tu le remplis.
Par exemple si tu rentres A, B puis C dans le dictionnaire dans t ordre, il se peut que tu obtiennes les clés dans un ordre tout différent (B, C et A par exemple) C'est pour cela qu'il faut souvent passer par les clés lorsqu'on veut les afficher ou les utiliser
Les listes (comme les tuples) préservent l'ordre dans lequel elles ont été alimentées. Ainsi si tu mets C, B puis A dans ta liste, tu auras toujours les éléments dans le même ordre : C, B et A
Les listes sont pointables par un entier :
maliste = [ "bonjour" , 123, 45.0045, mafonction]
print maliste[1]
>>> 123
Vous remarquerez au passage une intéressante propriété des listes (et des tuples et des dictionnaires aussi d'ailleurs), vous y mettez ce que vous voulez dedans !!! Vous pouvez ainsi ainsi mettre des listes dans des dictionnaires, des tuples dans des listes, des dictionnaires dans des tuples etc etc ...