ajout representation construits

This commit is contained in:
2021-11-15 16:41:55 +01:00
parent 2d8c726977
commit 779024ea47
58 changed files with 7068 additions and 143 deletions

View File

@@ -0,0 +1,478 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "bb1cfae9",
"metadata": {},
"source": [
"## Représentation des données : Les Dictionnaires "
]
},
{
"cell_type": "markdown",
"id": "c09a37ee",
"metadata": {},
"source": [
"-------------"
]
},
{
"cell_type": "markdown",
"id": "38d1e9f4",
"metadata": {},
"source": [
"> ***Contenue*** : Notions introduites : le type dictionnaire\n",
"\n",
"> ***Compétences*** : Construire une entrée de dictionnaire, savoir itérer sur es élèments d'un dictionnaire, connaître les méthodes."
]
},
{
"cell_type": "markdown",
"id": "0beaa407",
"metadata": {},
"source": [
"## Le programme"
]
},
{
"cell_type": "markdown",
"id": "dcbf1fd3",
"metadata": {},
"source": [
"-----"
]
},
{
"cell_type": "markdown",
"id": "57421c29",
"metadata": {},
"source": [
"![bo_tuple](../assets/bo_dico.png)"
]
},
{
"cell_type": "markdown",
"id": "401edcc8",
"metadata": {},
"source": [
"## Apport de connaissances"
]
},
{
"cell_type": "markdown",
"id": "717cce94",
"metadata": {},
"source": [
"--------"
]
},
{
"cell_type": "markdown",
"id": "0fc298dc",
"metadata": {},
"source": [
"Les dictionnaires Python permettent d'associer des valeurs à des clés : À partir d'une clé, on peut alors accéder directement à la valeur qui lui est associée."
]
},
{
"cell_type": "markdown",
"id": "607fa703",
"metadata": {},
"source": [
"### Propriétés"
]
},
{
"cell_type": "markdown",
"id": "9e023220",
"metadata": {},
"source": [
"Les dictionnaires sont des conteneurs, comme les listes et tuples, vus précédemment, et sont mutables : *on peut donc modifier, ajouter ou supprimer du contenu.*\n",
"\n",
"Par contre, contrairement aux types de conteneurs précédémment étudiés, on ne peut pas accéder au contenu d'un dictionnaire à l'aide d'un indice : un dictionnaire n'est pas une séquence.\n",
"\n",
"Si on peut bien modifier les valeurs dans un dictionnaire, chaque clé est *unique et non mutable*. Elle peut être une chaîne de caractères, un nombre, un tulle de nombre...\n",
"\n",
"Enfin, les valeurs, quant à elles, peuvent être quelconques."
]
},
{
"cell_type": "markdown",
"id": "555ca300",
"metadata": {},
"source": [
"------"
]
},
{
"cell_type": "markdown",
"id": "21761a39",
"metadata": {},
"source": [
"### Création et accès"
]
},
{
"cell_type": "markdown",
"id": "e219df29",
"metadata": {},
"source": [
"Pour initialiser un dictionnaire vide : "
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "09f0144b",
"metadata": {},
"outputs": [],
"source": [
"dico = {}\n",
"#ou\n",
"dico = dict()"
]
},
{
"cell_type": "markdown",
"id": "766eeca7",
"metadata": {},
"source": [
"Pour initialiser un dictionnaire avec des valeurs :"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "8523655d",
"metadata": {},
"outputs": [],
"source": [
"perso = {\"prenom\" : \"Bilbo\", \"age\" : 111}"
]
},
{
"cell_type": "markdown",
"id": "7f350ef3",
"metadata": {},
"source": [
"On a donc la clé en premier, ici, prenom & age sont deux chaines de caractères faisant office de clés.\n",
"\n",
"Accéder à une valeur d'un dictionnaire : on donne la clé à laquelle est associée la valeur recherchée (il faut donc que la clé existe)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c1124575",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Bilbo'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"perso [\"prenom\"]\n",
"'Bilbo'"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "094043d5",
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "'taille'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/var/folders/nb/7k573f_13zj2tnc5xd0020l40000gn/T/ipykernel_27744/399847934.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mperso\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"taille\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mKeyError\u001b[0m: 'taille'"
]
}
],
"source": [
"perso[\"taille\"]"
]
},
{
"cell_type": "markdown",
"id": "a29f8a7f",
"metadata": {},
"source": [
"Tout comme les listes, on peut utiliser la fonction ***len*** pour connaître le nombre de couples stockés."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "1e8c5e32",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(perso)"
]
},
{
"cell_type": "markdown",
"id": "865d51b5",
"metadata": {},
"source": [
"-----"
]
},
{
"cell_type": "markdown",
"id": "a1984b3d",
"metadata": {},
"source": [
"### Modification et parcours"
]
},
{
"cell_type": "markdown",
"id": "dfd2f41e",
"metadata": {},
"source": [
" On ajoute très simplement un couple clé / valeur :"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "24211303",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'prenom': 'Bilbo', 'age': 111, 'taille': 112}"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"perso [\"taille\"] = 112\n",
"perso"
]
},
{
"cell_type": "markdown",
"id": "24fbdfae",
"metadata": {},
"source": [
" Pour modifier une valeur, c'est la même méthode : on ajoute un couple deja existant, et cela va écraser la valeur précédente :"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "83ad4a74",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'prenom': 'Bilbo', 'age': 131, 'taille': 112}"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"perso[\"age\"] = 131\n",
"perso"
]
},
{
"cell_type": "markdown",
"id": "4fa255d5",
"metadata": {},
"source": [
"Pour supprimer une clé et sa valeur associée, on peut utiliser la fonction ***del***:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "fc43064d",
"metadata": {},
"outputs": [],
"source": [
"del perso[\"age\"]"
]
},
{
"cell_type": "markdown",
"id": "c9021bee",
"metadata": {},
"source": [
"------"
]
},
{
"cell_type": "markdown",
"id": "225cf727",
"metadata": {},
"source": [
"Comme les listes et les tuples, les dictionnaires sont intérables : on itère sur les clés, les valeurs, ou les couples clé / valeur\n",
"\n",
"- Itération sur les clés :"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "2be77c4a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"prenom\n",
"taille\n"
]
}
],
"source": [
"for cle in perso.keys():\n",
" print (cle)"
]
},
{
"cell_type": "markdown",
"id": "6a0ddd68",
"metadata": {},
"source": [
"- Itération sur les valeurs :"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "534dbdba",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Bilbo\n",
"112\n"
]
}
],
"source": [
"for val in perso.values():\n",
" print(val)"
]
},
{
"cell_type": "markdown",
"id": "d77a9b92",
"metadata": {},
"source": [
"- Itération sur les couples clé / valeur:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "21a715ba",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"prenom -> Bilbo\n",
"taille -> 112\n"
]
}
],
"source": [
"for (cle, val) in perso.items():\n",
" print(cle, \"->\", val)"
]
},
{
"cell_type": "markdown",
"id": "222e7ae8",
"metadata": {},
"source": [
"✏ Par défaut, on itère sur les clés."
]
},
{
"cell_type": "markdown",
"id": "c310b73d",
"metadata": {},
"source": [
"### À retenir"
]
},
{
"cell_type": "markdown",
"id": "65893b5c",
"metadata": {},
"source": [
"| Opération | Résultat |\n",
"| ---------------------- | ------------------------------------------------------------ |\n",
"| dico[k] | renvoie la valeur associée à la clé k |\n",
"| x in dico.values() | renvoie True si une valeur de dico est égale à x, False sinon |\n",
"| x not in dico.values() | renvoie True si aucune valeur de dico n'est égale à x, False sinon |\n",
"| x in dico.keys() | renvoie True si une clé de dico est égale à x, False sinon |\n",
"| dico[k] = v | Modifie la valeur v associée à la clé k ou l'ajoute si elle n'existe pas |\n",
"| dico.get(k, v) | Renvoie la valeur associé à la clé k. Si la clé k n'existe pas, renvoie la valeur v |\n",
"| del dico(k) | Enlève du dictionnaire la clé k |"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}