Une table associative réalise une correspondance entre des
valeurs d'un type donné (la clef) et des objets de type quelconque. Les tables
associatives sont de type variable. Il
n'y a pour l'instant qu'un seul type de table associative, le
dictionnaire. Les clefs de dictionnaires sont des valeurs pratiquement
arbitraires. Les seuls types non autorisés comme clef sont
ceux qui contiennent des listes ou des dictionnaires ou tout autre type
variable qu'on compare par valeur plutôt que par identité d'objet.
Les clefs ayant un type numérique se comportent comme les objets de type
numériques: si deux nombres sont égaux à la comparaison (par exemple 1
et 1.0) ils peuvent être indifféremment utilisés comme index
pour la même entrée dans le dictionnaire.
Les dictionnaires sont créés en construisant une liste de couples
clef: valeur séparés par des deux-points,
et le tout délimité par des accolades:
{'robert': 4098, 'jean-claude': 4127} ou
{4098: 'robert', 4127: 'jean-claude'}.
Les opérations suivantes sont applicables aux tables associatives (où a et b sont des tables associatives, k une clef, et v et x sont des objets quelconques):
| Opération | Résultat | Notes |
|---|---|---|
len(a) | nombre d'éléments dans a | |
a[k] | retourne l'élément a ayant pour clef k | (1) |
a[k] = v |
affecte la valeur v à a[k] |
|
del a[k] |
supprime a[k] de a |
(1) |
a.clear() | supprime tous les éléments de a | |
a.copy() | une copie (superficielle) de a | |
a.has_key(k) |
1 si a possède la clef k, sinon 0 |
|
a.items() |
retourne une copie des couples (clef, valeur) de a | (2) |
a.keys() | retourne une liste des clefs de a | (2) |
a.update(b) |
for k in b.keys(): a[k] = b[k] |
(3) |
a.values() | retourne une liste des valeurs de a | (2) |
a.get(k[, x]) |
a[k] si a.has_key(k),
sinon x |
(4) |
a.setdefault(k[, x]) |
a[k] si a.has_key(k),
sinon x (en le mettant à jour) |
(5) |
Notes:
(valeur, clef):
"pairs = map(None, a.values(), a.keys())".
None est retourné.