Dictionnaires

1. Manipulation de Dictionnaires

1.1. Création de dictionnaire

d0 = {"nadine": 12,
      "glycerine": 21,
      12: "nadine",
      "velociraptor": 12}
d1 = {}
d1["albumine"] = 42
d1[("nadine", 12)] = 12
# d1[["nadine", 12]] = 12 # Erreur : TypeError: unhashable type: 'list'
# d1[d0] = 12 # Erreur : TypeError: unhashable type: 'dict'
d1["nadine"] = ["nadine", 12]

1.2. Modification et opérations

n = len(d0)
d0["nadine"] = [1,2,3]
d1["allan"] = d0["velociraptor"]
"nadine" in d0
"12" in d0
cles = [k for k in d0.keys()]
assoc = [(k, v) for k, v in d1.items()]

2. Algorithmes

2.1. Recherche linéaire.

def in_valeur(d, x):
    assert not (None in d)
    for k, v in d.items():
        if x == v:
            return k
    return None

2.2. Nombre d’occurrences.

def occurrences(s):
    d = {}
    for c in s :
        if not c in s:
            d[c] = 0
        d[c] += 1
    return d

3. Pour s’entraîner

3.1. Clé du maximum.

def cmax(d):
    m = -float("inf")
    cm = None
    for k, v in d.items():
        if m < v:
            m = v
            cm = k
    return cm

3.2. Somme

def somme(d):
    s = 0
    for k, v in d.items():
        s += v
    return s