{"cells":[{"metadata":{},"cell_type":"markdown","source":"
Par exemple : \n
Le dictionnaire se crée à l’aide d’accolade ( contrairement aux listes créées avec des crochets et les tuples avec des parenthèses ).
\nPlusieurs méthodes permettent de créer :
\n\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"d1 = {} # Création d'un dictionnaire vide\nd2 = dict() # Création d'un dictionnaire vide (autre méthode)\nd3 = {'poires': 5, 'bananes': 7, 'abricots' : 12} # création d'un dictionnaire par extension\nd4 = {k: k**2 for k in range(1, 10)} # création d'un dictionnaire par compréhension\nprint(type(d1))\nprint(\"d1 =>\", d1)\nprint(\"d2 =>\", d2)\nprint(\"d3 =>\", d3)\nprint(\"d4 =>\", d4)\n\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Pour ajouter une clé, on la nomme entre guillemets, le tout entre crochet. \nOn lui affecte sa valeur à l’aide du signe égal. "},{"metadata":{"trusted":false},"cell_type":"code","source":"JB={} # création d'un dictionnaire vide\nJB[\"Nom\"]=\"Bond\" # on crée une clé=\"Nom\" avec la valeur :\"Bond\"\nJB[\"Prénom\"]=\"James\" \nJB[\"acteurs\"]=(\"Connery\",\"Moore\",\"Brosnan\",\"Craig\") # on crée une clé acteurs avec come valeur un tuple \nJB[\"année\"]=1953\nprint(JB) ","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"
On peut aussi créer directement un dictionnaire sans passer par un dictionnaire vide
"},{"metadata":{"trusted":false},"cell_type":"code","source":"joueur={\"Nom\":\"Maradona\",\"Prénom\":\"Diego\",\"Coupe du monde\":2}\nprint(joueur)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"On peut aussir créer un dictionnaire à partir d'une liste existante par la fonction dict(L) :
"},{"metadata":{"trusted":false},"cell_type":"code","source":"# soit une liste de tuples\nL=[(\"Carl\",21),(\"Sophie\",8),(\"Gabriel\",20),(\"Olivier\",12)]\nd5=dict(L)\nprint(d5)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# soit une liste de listes\nL=[[\"Marc\",[\"h\",22]],[\"Léa\",[\"f\",22]]]\nd6=dict(L)\nprint(d6)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Créer un dictionnaire Pays avec comme clé le nom du pays et comme valeur la Capitale
\nle remplir d'au moins 3 clés, faire des tests d'appartenance
\nOn récupére une donnée d'un dictionnaire par l'accès à sa clé et l'instruction :
\nnom_du_dictionnaire[nom_de_clé]
"},{"metadata":{"trusted":false},"cell_type":"code","source":"#exemple1\nprint(d5[\"Sophie\"])","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# exemple2 on affecte la valeur à une variable \nn=d5[\"Carl\"]\nprint(n)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"c'est possible car les dictionnaires sont des objets mutables
"},{"metadata":{},"cell_type":"raw","source":"Pour ajouter une clé, il suffit de créer une nouvelle clé"},{"metadata":{"trusted":false},"cell_type":"code","source":"# on ajoute une nouvelle clé au dictionnaire \nprint(JB)\nJB[\"nb de films\"]=26\nprint(JB)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Pour modifier la valeur d'une clé, on procède comme une variable : "},{"metadata":{"trusted":false},"cell_type":"code","source":"# j'ai oublié des acteurs, on réecrit la clé :\nJB=(\"Connery\",\"Lazenby\",\"Moore\",\"Brosnan\",\"Dalton\",\"Craig\")\nprint(JB)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Pour supprimer une clé, on utilise la fonction del ou la méthode pop si on veut conserver l'élement supprimé
"},{"metadata":{"trusted":false},"cell_type":"code","source":"# exemple avec del\ndel(d5[\"Carl\"])\nprint(d5)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# exemple avec pop\nFruits = { \"pomme\": 2, 'orange': 3, 'raisin': 4 }\nelement = Fruits.pop(\"pomme\")\nprint(element)\nprint(Fruits)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Enfin, pour copier un dictionnaire de façon indépendante, on utilise la méthode deepcopy à importer du module copy, sinon la modification d'un dictionnaire modifiera l'autre. Cette remarque s'applique aussi aux listes
"},{"metadata":{"trusted":false},"cell_type":"code","source":"import copy\nd1 = {'a':1}\nd2 = copy.deepcopy(d1)\n#d2=d1\nprint(d2)\nd1[\"b\"]=2\nprint(d1)\nprint(d2)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":" Exemple : Un répertoire téléphonique interne peut être représenté par un dictionnaire.
\nIl contient une série de paires prénom, numéro de téléphone.
\nOn peut accéder au numéro en interrogeant sur le prénom.
afficher uniquement toutes les matieres de Notes
"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Afficher les matières où la note est supérieure à 10
"},{"metadata":{"trusted":false},"cell_type":"code","source":"# 1ere version : on récupére les clés et on teste la valeur par sa clé\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# 2ème version on récupère les couples clés valeurs\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"calculer la moyenne des notes du dictionnaire
"},{"metadata":{"trusted":false},"cell_type":"code","source":"# 1ère version : on parcourt le dictionnaire par les valeurs\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# 2ème version : on parcourt le dictionnaires par les clés\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":" Soit le dictionnaire suivant qui contient quelques montagnes celebres dans le monde :
\nla clé est le nom et la valeur est un tuple (continent,altitude)
si texte est \"bonjour Bob\" alors Occurences est {\"b\":2,\"o\":3,\"n\":1,\"j\":1,\"u\":1,\"r\":1,\"B\":1}
"},{"metadata":{},"cell_type":"raw","source":"idee de l'algorithme :\non créee un dictionnaire Occurrences vide\non parcourt le texte caractères par caractères\non teste si le caractère est dans le dictionnaire\n si c'est non on ajoute la clé c au dictionnaire avec valeur 1\n si c'est oui on ajoute 1 à la valeur\n\nalgo en pseudo code :\nOccurences <- {}\nPour c dans texte\n si c n'est pas dans Occurences\n Occurences[c] <- 1\n sinon\n Occurences [c] <- Occurences[c]+1\n fin si\nfin pour\nAfficher Occurences"},{"metadata":{"trusted":false},"cell_type":"code","source":"# y a plus qu'à coder avec le texte sur la cigale et la fourmi\ntexte=\"La cigale ayant chanté Tout l'été, Se trouva fort dépourvue Quand la bise fut venue. Pas un seul petit morceau De mouche ou de vermisseau.Elle alla crier famine\"\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"a) Ecrire un programme qui recense dans un dictionnaire tous les mots écrits dans un texte
"},{"metadata":{},"cell_type":"raw","source":"idee de l'algorithme\non initialise une variable mot à \"\"\non parcourt le texte carcatère par caractère et construit le mot en ajoutant le caractère à mot\non s'arrete losqu'on ne rencontre plus de lettres ( c'est à dire un espace, une virgule,...)\nOn teste si le mot dans le dictionnaire(ou pas) en le créant (ou en augmentant sa valeur de 1)\non réinitialise la variable mot\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"texte=\"Le texte suivant est celui que l'on va utiliser.Ce texte c'est du n'importe quoi!n'est ce pas?\"\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"b) En déduire un programme qui va donner le (ou les ) mots les plus écrits dans un texte.
"},{"metadata":{},"cell_type":"raw","source":"On va transformer le programme precedent en une fonction qui prend en entrée le texte et en sortie le dictionnaire\nOn cherche ensuite la valeur max des clés du tableau\nPuis on reparcourt le dictionnaire en affichant les clés dont la valeur est égale à valeur max"},{"metadata":{"trusted":false},"cell_type":"code","source":"\n\ntexte =\"Le texte suivant est celui que l'on va analyser,ce texte c'est du n'importe quoi.J'aurai du choisir un autre texte, n'est ce pas\"\n\n","execution_count":null,"outputs":[]}],"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.9.7"}},"nbformat":4,"nbformat_minor":2}