python:bases:dictionnaires

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
python:bases:dictionnaires [2021/08/11 09:19] – modification externe 127.0.0.1python:bases:dictionnaires [2022/08/16 08:27] (Version actuelle) – [9.2 Un dictionnaire pour indexer les enregistrements] phil
Ligne 3: Ligne 3:
 [[:python:accueilpython|{{ :iconemaison.jpg?nolink&30|Sommaire Python et microPython}}]] [[:python:accueilpython|{{ :iconemaison.jpg?nolink&30|Sommaire Python et microPython}}]]
  
-===== Les dictionnaires =====+===== Python - Dictionnaires =====
  
-[Mise à jour le : 30/6/2021] +[Mise à jour le : 16/8/2022]
-{{ :micropython:python.png?nolink&80|}}+
  
   * **Sources**   * **Sources**
Ligne 14: Ligne 13:
     * **Real Python**     * **Real Python**
       * <html><a href="https://realpython.com/python-ordereddict/" target="_blank">OrderedDict vs dict in Python: The Right Tool for the Job</a></html>       * <html><a href="https://realpython.com/python-ordereddict/" target="_blank">OrderedDict vs dict in Python: The Right Tool for the Job</a></html>
 +      * <html><a href="https://realpython.com/sort-python-dictionary/" target="_blank">Sorting a Python Dictionary: Values, Keys, and More</a></html>
  
   * ** Mots-clés** :  dictionnaire, parcours de dictionnaires.    * ** Mots-clés** :  dictionnaire, parcours de dictionnaires. 
  
-<note important>Les mots ci-dessous sont dits "réservés". Ils ne peuvent pas être utilisés comme nom de variable. Les mots __soulignés__ sont une nouveauté de Python 3. Les mots en **gras** sont utilisés dans cette page.</note>+<callout type="warning" icon="true">Les mots ci-dessous sont dits "réservés". Ils ne peuvent pas être utilisés comme nom de variable. Les mots __soulignés__ sont une nouveauté de Python 3. Les mots en **gras** sont utilisés dans cette page.</callout>
  
 |  and        |  continue    finally  |  **is**        |  raise      | |  and        |  continue    finally  |  **is**        |  raise      |
Ligne 35: Ligne 35:
 Le dictionnaire est une implémentation de table de hash. Il permet l'accès, l'insertion et le test d'appartenance indépendamment du nombre d'éléments. Le dictionnaire est un objet conteneur. À la différence des séquences, qui sont indexées par des nombres, les dictionnaires sont indexés par des **clés**, qui peuvent être de n'importe quel type immuable ; les chaînes de caractères et les nombres peuvent toujours être des clés.  Le dictionnaire est une implémentation de table de hash. Il permet l'accès, l'insertion et le test d'appartenance indépendamment du nombre d'éléments. Le dictionnaire est un objet conteneur. À la différence des séquences, qui sont indexées par des nombres, les dictionnaires sont indexés par des **clés**, qui peuvent être de n'importe quel type immuable ; les chaînes de caractères et les nombres peuvent toujours être des clés. 
  
-<note>Les **dictionnaires** sont des objets **mutables**. Leur structure n'est pas ordonnée (ceci est dû à l'action de la fonction de hachage).Les **clés** doivent avoir un **type immuable**.</note>+<callout type="primary" icon="true">Les **dictionnaires** sont des objets **mutables**. Leur structure n'est pas ordonnée (ceci est dû à l'action de la fonction de hachage).Les **clés** doivent avoir un **type immuable**.</callout>
  
 ==== 2. Création ==== ==== 2. Création ====
-<note>On utilise l'expression suivante : //nom_dictionnaire// = **dict()** ou //nom_dictionnaire// = **{}** pour créer des dictionnaires vides.</note>+<callout type="primary" icon="true">On utilise l'expression suivante : //nom_dictionnaire// = **dict()** ou //nom_dictionnaire// = **{}** pour créer des dictionnaires vides.</callout>
  
 //Exemples// //Exemples//
Ligne 65: Ligne 65:
 </code> </code>
  
-<note>Les **accolades** délimitent les **dictionnaires**.</note>+<callout type="primary" icon="true">Les **accolades** délimitent les **dictionnaires**.</callout>
  
 ==== 3. Lecture de la valeur d'un élément ====  ==== 3. Lecture de la valeur d'un élément ==== 
Ligne 79: Ligne 79:
  
 ==== 4. Ajout ou modification d'un élément ==== ==== 4. Ajout ou modification d'un élément ====
-<note>Le dictionnaire est un type **mutable**, et donc on peut **modifier la valeur** associée à une clé. On utilise l'expression suivante : //nom_dictionnaire//**[****//clé//****]** = //**valeur**//. Et de la même jaçon, **ajouter une entrée**.</note>+<callout type="primary" icon="true">Le dictionnaire est un type **mutable**, et donc on peut **modifier la valeur** associée à une clé. On utilise l'expression suivante : //nom_dictionnaire//**[****//clé//****]** = //**valeur**//. Et de la même jaçon, **ajouter une entrée**.</callout>
  
 //Exemples// //Exemples//
Ligne 97: Ligne 97:
  
 ==== 5. Suppression d'éléments ==== ==== 5. Suppression d'éléments ====
-<note>On utilise **del**(//nom_dictionnaire//**[****//clé//****]**) ou //nom_dictionnaire//.**pop**("**clé**"). pop renvoie la valeur.</note>+<callout type="primary" icon="true">On utilise **del**(//nom_dictionnaire//**[****//clé//****]**) ou //nom_dictionnaire//.**pop**("**clé**"). pop renvoie la valeur.</callout>
  
 <code python *.py> <code python *.py>
Ligne 112: Ligne 112:
  
 === 6.1 Parcours des clés et valeurs simultanément === === 6.1 Parcours des clés et valeurs simultanément ===
-<note>On utilise la méthode **items** de la classe **dict**. Elle renvoie une **liste**, contenant les couples **clé : valeur**, sous la forme d'un tuple.</note>+<callout type="primary" icon="true">On utilise la méthode **items** de la classe **dict**. Elle renvoie une **liste**, contenant les couples **clé : valeur**, sous la forme d'un tuple.</callout>
  
 <code python *.py> <code python *.py>
Ligne 130: Ligne 130:
  
 === 6.2 Parcours des clés === === 6.2 Parcours des clés ===
-<note>On utilise la méthode **keys**() de la classe **dict**.</note>+<callout type="primary" icon="true">On utilise la méthode **keys**() de la classe **dict**.</callout>
  
 <code python *.py> <code python *.py>
Ligne 144: Ligne 144:
 </code> </code>
  
-<note>L'itérateur sur les dictionnaires itère directement sur les clés.</note>+<callout type="primary" icon="true">L'itérateur sur les dictionnaires itère directement sur les clés.</callout>
  
 //Exemple// //Exemple//
Ligne 161: Ligne 161:
  
 === 6.3 Parcours des valeurs === === 6.3 Parcours des valeurs ===
-<note>On utilise la méthode **values**() de la classe **dict**.</note>+<callout type="primary" icon="true">On utilise la méthode **values**() de la classe **dict**.</callout>
  
 <code python *.py> <code python *.py>
Ligne 175: Ligne 175:
 </code> </code>
  
- +<callout type="tip" icon="true">Les méthodes **keys**(), **values**() et **items**() retournent un objet particulier appelé : **une vue** (itérable et possédant le test d'appartenance). La caractéristique principale d'une vue est qu'elle est **mise à jour** en même temps que le dictionnaire.</callout>
- +
-<note tip>Les méthodes **keys**(), **values**() et **items**() retournent un objet particulier appelé : **une vue** (itérable et possédant le test d'appartenance). La caractéristique principale d'une vue est qu'elle est **mise à jour** en même temps que le dictionnaire.</note>+
  
 // Exemple // // Exemple //
Ligne 196: Ligne 194:
 </code> </code>
 ==== 7. Formation d'un dictionnaire à partir de deux listes ==== ==== 7. Formation d'un dictionnaire à partir de deux listes ====
-<note>On utilise l'expression suivante : //nom_dictionnaire// = **dict**(**zip**(//listeClés//,//listeVal//))</note>+<callout type="primary" icon="true">On utilise l'expression suivante : //nom_dictionnaire// = **dict**(**zip**(//listeClés//,//listeVal//))</callout>
  
 //Exemples// //Exemples//
Ligne 256: Ligne 254:
 </code> </code>
  
-<note important>Problème : l'accès à un enregistrement suppose ici que l'on connaisse sa position. +<callout type="warning" icon="true">Problème : l'accès à un enregistrement suppose ici que l'on connaisse sa position. 
-</note>+</callout>
  
 ===9.2 Un dictionnaire pour indexer les enregistrements === ===9.2 Un dictionnaire pour indexer les enregistrements ===
-<note tip>Pour modéliser ces informations, il est plus adapté d'utiliser, non pas une liste, mais un **dictionnaire de dictionnaires**.</note>+<callout type="tip" icon="true">Pour modéliser ces informations, il est plus adapté d'utiliser, non pas une liste, mais un **dictionnaire de dictionnaires**.</callout>
  
 //Exemple// //Exemple//
  • python/bases/dictionnaires.1628666361.txt.gz
  • Dernière modification : 2021/08/11 09:19
  • de 127.0.0.1