Introduction aux dictionnaires
Python
dictionnaire = {
"clé1": "valeur1",
"clé2": "valeur2",
"clé3": "valeur3"
}
key Structure clé-valeur access_time Accès rapide
Paires clé: valeur uniques Complexité O(1) en moyenne
edit Mutable shuffle Non ordonné
Modifiable après création Pas d'ordre garanti (Python < 3.7)
Création et manipulation de
dictionnaires
add_circle Création add Ajout
dict = { dict["ville"] = "Paris"
"nom": "Alice", [Link]({"pays":
"âge": 25 "France"})
}
edit Modification delete Suppression
dict["âge"] = 26 del dict["âge"]
[Link]("ville")
search Accès check_circle Vérification
dict["nom"] "nom" in dict
[Link]("âge", 0) "téléphone" not in dict
Méthodes et opérations utiles
list Itération visibility Accès aux clés/valeurs
for key in dict: [Link]()
for key, value in [Link]()
[Link](): [Link]()
find_replace Recherche compare_arrows Fusion
[Link](key, default) [Link](dict2)
[Link](key, new_dict = {**dict1,
default) **dict2}
content_copy Copie calculate Opérations avancées
dict_copy = [Link]() [Link]()
dict_copy = [Link](key)
[Link](keys, [Link]()
value)
Cas d'utilisation et bonnes
pratiques
data_object k d d é map
Dictionnaires imbriqués
layers Création
users = {
"user1": {
"nom": "Alice",
"âge": 25
},
"user2": {
"nom": "Bob",
"âge": 30
}
}
touch_app Accès
# Accès direct
nom = users["user1"]["nom"]
# Avec get() pour éviter les erreurs
âge = [Link]("user1", {}).get("âge", 0)
edit Modification
# Modifier une valeur existante
users["user1"]["âge"] = 26
# Ajouter une nouvelle clé
users["user1"]["email"] = "alice@[Link]"
loop Itération
Comparaison des structures de
données
Structure Accès Mutable Ordonné Utilisation
data_object check_circle (Python
Dictionnaire
O(1) (clé) check_circle ≥ 3.7)
Clé-valeur
O(1) Collection
list Liste (index) check_circle check_circle ordonnée
O(1) Données
view_array Tuple (index) cancel check_circle immuables
O(1) Éléments
category Ensemble (élément) check_circle cancel uniques
trending_up Avantages du dictionnaire compare_arrows Quand utiliser
Techniques d'optimisation
speed Compréhensions memory Pré-allocation
result = {k: f(v) for dict = {i: 0 for i in
k, v in items if range(1000)}
condition}
Évite les redimensionnements
Plus rapide que les boucles fréquents
traditionnelles
cached Mémoïsation view_module defaultdict
cache = {} from collections import
if key not in cache: defaultdict
cache[key] = d = defaultdict(list)
expensive_function(key) d[key].append(value)
Évite les calculs répétitifs Évite les vérifications de clés
format_list_numbered Counter merge_type Fusion efficace
from collections import result = {**dict1,
Counter **dict2}
counts = result = dict1 | dict2
Counter(iterable) # Python 3.9+
Comptage efficace d'éléments Fusion rapide de dictionnaires
Nouveautés des dictionnaires
new_releases Ordre préservé 3.7+ merge_type Opérateur de fusion 3.9+
Les dictionnaires conservent Fusion de dictionnaires avec
l'ordre d'insertion l'opérateur |
d = {"c": 3, "a": 1, d1 = {"a": 1, "b": 2}
"b": 2} d2 = {"b": 3, "c": 4}
# Maintient l'ordre: c, result = d1 | d2 #
a, b {'a': 1, 'b': 3, 'c':
4}
update Opérateur de mise à 3.9+
speed Performance 3.6+
jour améliorée
Mise à jour avec l'opérateur |= Nouvelle implémentation plus
d1 = {"a": 1, "b": 2} compacte et rapide
d2 = {"b": 3, "c": 4} -20% d'utilisation mémoire
d1 |= d2 # d1 devient +25% plus rapide pour les
{'a': 1, 'b': 3, 'c': opérations courantes
4}
sync_alt dict_reversed() 3.8+ code dict.__ior__() 3.9+
Itération inversée des clés Support de l'opérateur |= pour
d = {"a": 1, "b": 2, la mise à jour en place
"c": 3} d = {"a": 1}
for k in reversed(d): d.__ior__({"b": 2})
print(k) # c, b, a # Équivalent à d |=
{"b": 2}
Merci pour votre attention
help_outline Des questions ?
Développé par
Ilyas Habchane Mounia Housni Hichame Kabraoui Soukaina Saadi