Dictionnaires - mains sur Python Tutorial pour Python 3

1.12.1. Définition et utilisation des Dictionaries¶

Dans l'usage courant, un dictionnaire est une collection de mots qui correspondent à leurs définitions. Étant donné un mot, vous pouvez consulter sa définition. Python a construit dans le type de dictionnaire appelé dict que vous pouvez utiliser pour créer des dictionnaires avec des définitions arbitraires pour les chaînes de caractères. Il peut être utilisé pour l'usage courant, comme dans un simple dictionnaire anglais-espagnol.







Regardez le spanish1.py exemple du programme et l'exécuter.

Tout d'abord un dictionnaire vide est créé à l'aide dict (). et il se voit attribuer le nom descriptif espagnol.

Pour se référer à la définition d'un mot, vous utilisez le nom du dictionnaire, suivre le mot entre crochets. Cette notation peut être utilisé soit sur le côté gauche d'une affectation à faire (ou refaire) une définition, ou il peut être utilisé dans une expression (comme dans les fonctions d'impression), où sa définition antérieure est récupéré. Par exemple,

fait une entrée dans notre dictionnaire espagnol pour « bonjour ». avec la définition « hola ».

récupère la définition de « rouge ». qui est 'Rojo.

Étant donné que le dictionnaire espagnol est défini au plus haut niveau, le nom de la variable espagnol est toujours défini après l'exécution du programme: Après l'exécution du programme, utiliser l'espagnol dans le Shell pour vérifier les traductions de quelques autres mots, autre que « deux » et 'rouge' .

Création du dictionnaire est un bien défini et tout autre activité de l'utilisation du dictionnaire à la fin du code, afin que nous puissions utiliser une fonction pour encapsuler la tâche de créer le dictionnaire, comme dans l'exemple programme spanish2.py. ce qui donne le même résultat:

Ce code illustre plusieurs choses sur les fonctions.

  • Tout d'abord, comme des fichiers entiers, les fonctions peuvent avoir une chaîne de documentation immédiatement après le titre de la définition. Il est une bonne idée de documenter la valeur de retour!
  • Le dictionnaire qui est créé est retourné, mais le nom de la variable locale dans la fonction, espagnol. est perdue lorsque la fonction se termine.
  • Pour ne pas oublier le dictionnaire retourné à principal. il a besoin d'un nom. Le nom ne doit pas correspondre au nom utilisé dans createDictionary. Le dictionnaire est un nom descriptif.

On pourrait aussi utiliser le dictionnaire plus largement. L'exemple programme spanish2a.py est le même que ci-dessus, sauf qu'il a la principale méthode suivante:

Essayez-le, et vérifier qu'il est logique.

dictionnaires Python sont en fait plus général que l'utilisation commune des dictionnaires. Ils ne doivent pas associer des mots et de leurs définitions de chaîne. Ils peuvent associer de nombreux types d'objets avec un objet quelconque. La terminologie Python plus générale pour mot et la définition sont la clé et la valeur. Étant donné une clé, vous pouvez rechercher la valeur correspondante. La seule restriction à la clé est que ce soit un type immuable. Cela signifie que ne peut pas être changé en interne après avoir été initialement créé une valeur de type de la clé. Les chaînes et les chiffres sont immuables. Un dictionnaire est mutable. sa valeur peut être modifiée en interne. (Vous pouvez ajouter de nouvelles définitions à elle!) Nous verrons les types plus mutables et immuables plus tard et explorer plus du fonctionnement interne des types de données.

1.12.1.1. Numéro Dictionnaire Exercise¶

Ecrire un programme Python petit numDict.py qui fait un dictionnaire dont les clés sont les mots d'un ', « deux », « trois », et « quatre », et dont les valeurs correspondantes sont les équivalents numériques, 1, 2, 3, et 4 (ints, pas des chaînes). Inclure code pour tester le dictionnaire résultant en faisant référence à plusieurs des définitions et l'impression des résultats.

1.12.2. Dictionnaires et cordes Formatting¶







A la fin de la fonction principale dans spanish2a.py de la dernière section, deux chaînes sont construites et imprimées. Les expressions pour les deux chaînes comprennent une séquence de chaînes littérales concaténés avec des valeurs entrecoupées d'un dictionnaire. Il y a un beaucoup plus propre, de manière plus lisible pour générer ces chaînes. Nous allons développer ce en plusieurs étapes. La première chaîne pourrait être construit et imprimé comme suit:

Il y a plusieurs idées nouvelles ici. Nous utilisons une autre forme de paramètres de chaîne de format et la méthode de format de celles décrites dans la chaîne Opération Format.

Notez la forme de la chaîne attribué le nom Numberformat. Il a les mots anglais chiffres dans les accolades où nous voulons que les définitions espagnoles substituées. (Ce qui est différent à l'opération Format String. Où nous avons eu des accolades vides ou un index numérique à l'intérieur.)

Comme dans la chaîne Opération Format. la deuxième ligne utilise une syntaxe d'appel de méthode. Un rappel de la syntaxe des méthodes suivantes:

a pour objet suivie d'une période suivie par le nom de la méthode, et d'autres paramètres entre parenthèses.

Dans l'exemple ci-dessus, l'objet est la chaîne appelée Numberformat. La méthode est le format nommé. Les paramètres dans ce cas sont tous les paramètres de mots clés. Vous avez déjà vu des paramètres de mots clés et la fin septembre utilisé dans les appels de fonction d'impression. Dans cette application particulière, les mots-clés sont choisis pour inclure tous les mots qui apparaissent entre accolades dans la chaîne numberformat.

Lorsque la chaîne a numberformat la méthode de format qui lui est appliqué avec les paramètres mot-clé donné, une nouvelle chaîne est créée avec des substitutions dans les lieux entre accolades. Les substitutions ne sont que les valeurs données par les paramètres de mots clés. D'où le résultat imprimé est

Comptez en espagnol: uno, dos, tres.

Maintenant, nous allons un peu plus loin: Les paramètres clés associent les noms de mots clés avec les valeurs après les signes égaux. Le dictionnaire de spanish2a.py comprend exactement les mêmes associations. Il existe une notation spéciale permettant un tel dictionnaire pour fournir des paramètres de mots clés. En supposant que le dictionnaire est le dictionnaire espagnol de spanish2a.py. l'appel de méthode

retourne la même chaîne que

La syntaxe spéciale ** avant le dictionnaire indique que le dictionnaire est de ne pas être traité comme un seul paramètre réel. Au lieu des arguments de mots clés pour toutes les entrées dans le dictionnaire apparaissent effectivement à sa place.

Ci-dessous un substitut à la méthode principale spanish2a.py. L'ensemble du programme révisé est dans l'exemple programme spanish3.py:

Dans cette fonction, la chaîne principale avec les chiffres est réalisé par étapes comme décrit ci-dessus. L'impression de la chaîne avec les couleurs espagnoles est codé de façon plus concise. Il n'y a pas des variables nommées pour la chaîne de format ou la chaîne formatée résultante. Vous êtes libre d'utiliser les deux approches de codage.

En général, utilisez la syntaxe pour la méthode de format de chaîne avec un dictionnaire, retournant une nouvelle chaîne formatée:

formatString .format (** aDictionary)

où la chaîne de format contient les clés de dictionnaire accolades où vous voulez que les valeurs de dictionnaire substitués. Les noms clés du dictionnaire doivent suivre les règles applicables aux identificateurs juridiques.

À ce stade, nous avons discuté en détail tout ce qui est entré dans le premier exemple de programme, madlib.py. dans un programme échantillon, a expliqué. C'est certainement le programme le plus important à ce jour.

Regardez à nouveau madlib.py, voir comment nous avons utilisé la plupart des idées à ce jour. Si vous voulez une description plus, vous pouvez consulter la section Un exemple de programme, a expliqué à nouveau (ou pour la première fois): il faut beaucoup plus de sens maintenant.

Nous utiliserons madlib.py comme base pour plus de modifications substantielles de la structure dans The Mad Lib programme révisé.

1.12.2.1. Mad Lib Exercise¶

Pour confirmer votre meilleure compréhension de madlib.py. charger dans l'éditeur, renommer comme myMadlib.py. et le modifier pour avoir une histoire moins boiteux. avec plus d'entrées et différentes dans le dictionnaire. Assurez-vous que addPick est appelée pour chaque clé de votre chaîne de format. Testez votre version.

1.12.3. Dictionnaires et Python Variables¶

Les dictionnaires sont au cœur de la mise en œuvre de Python. Chaque identifiant variable est associée à une valeur particulière. Ces relations sont stockées dans les dictionnaires en Python, et ces dictionnaires sont accessibles à l'utilisateur: Vous pouvez utiliser les locaux d'appel () pour retourner un dictionnaire contenant tous les noms des variables courantes locales comme les clés et toutes les valeurs que les valeurs de dictionnaire correspondantes. Ce dictionnaire peut être utilisé avec la méthode de format de chaîne, de sorte que vous pouvez intégrer des noms de variables locales dans une chaîne de format et de les utiliser très facilement!

Par exemple, exécutez l'exemple de programme arithDict.py

Notez les noms de variables à l'intérieur des accolades dans formatStr, et la référence dictionnaire utilisé comme paramètre de format est ** habitants ().

L'exemple programme hello_you4.py fait la même chose que les versions antérieures hello_you, mais avec une référence dictionnaire:

1.12.3.1. Quotient Chaîne Dictionnaire Exercise¶

Créer quotientDict.py en modifiant quotientReturn.py dans Quotient chaîne Retour exercice de sorte que la fonction quotientString accomplit la même chose, mais changer l'appel de méthode de format à utiliser les locaux ** dictionnaire () comme paramètre, et de mettre les noms de variables locales à l'intérieur des accolades . Si vous utilisez des noms significatifs pour les variables, la chaîne de format devrait être particulièrement facile à comprendre.







Articles Liés