Dicté et fichier Python | Éducation Python | Google pour les développeurs (2024)

Table de hachage de dictée

La structure efficace de la table de hachage clé/valeur de Python est appelée « dict ». Le contenu d'un dict peut être écrit sous la forme d'une série de paires clé:valeur entre accolades { }, par ex. dict = {clé1:valeur1, clé2:valeur2, ... }. Le "dict vide" n'est qu'une paire d'accolades vides {}.

La recherche ou la définition d'une valeur dans un dict utilise des crochets, par ex. dict['foo'] recherche la valeur sous la clé 'foo'. Les chaînes, les nombres et les tuples fonctionnent comme des clés, et n'importe quel type peut être une valeur. D'autres types peuvent ou non fonctionner correctement en tant que clés (les chaînes et les tuples fonctionnent correctement car ils sont immuables). La recherche d'une valeur qui n'est pas dans le dict renvoie une KeyError - utilisez "in" pour vérifier si la clé est dans le dict, ou utilisez dict.get(key) qui renvoie la valeur ou None si la clé n'est pas présente ( ou get(key, not-found) vous permet de spécifier quelle valeur renvoyer dans le cas non trouvé).

## Peut créer un dict en commençant par le dict vide {} ## et en stockant les paires clé/valeur dans le dict comme ceci : ## dict[key] = value-for-that-key dict = {} dict[' a'] = 'alpha' dict['g'] = 'gamma' dict['o'] = 'omega' print(dict) ## {'a' : 'alpha', 'o' : 'omega', 'g': 'gamma'} print(dict['a']) ## Recherche simple, renvoie 'alpha' dict['a'] = 6 ## Mettre une nouvelle clé/valeur dans le dict 'a' dans le dict ## True ## print(dict['z']) ## Lève KeyError si 'z' dans dict : print(dict['z']) ## Évitez KeyError print(dict.get('z')) ## Aucun (au lieu de KeyError)

Dicté et fichier Python| Éducation Python| Google pour les développeurs (1)

Une boucle for sur un dictionnaire parcourt ses clés par défaut. Les clés apparaîtront dans un ordre arbitraire. Les méthodes dict.keys() et dict.values() renvoient explicitement des listes de clés ou de valeurs. Il existe également un items() qui renvoie une liste de tuples (clé, valeur), ce qui constitue le moyen le plus efficace d'examiner toutes les données de valeur clé du dictionnaire. Toutes ces listes peuvent être transmises à la fonction sorted().

## Par défaut, parcourir un dict parcourt ses clés. ## Notez que les clés sont dans un ordre aléatoire. pour la clé dans dict : print(key) ## imprime un g o ## Exactement la même chose que ci-dessus pour la clé dans dict.keys() : print(key) ## Obtenez la liste .keys() : print(dict.keys() ) ## dict_keys(['a', 'o', 'g']) ## De même, il existe une liste de valeurs .values() print(dict.values()) ## dict_values(['alpha', ' omega', 'gamma']) ## Cas courant -- boucle sur les clés dans l'ordre trié, ## accès à chaque clé/valeur pour la clé dans trié(dict.keys()): print(key, dict[key]) ## .items() est le dict exprimé sous forme de tuples (clé, valeur) print(dict.items()) ## dict_items([('a', 'alpha'), ('o', 'omega'), ('g', 'gamma')]) ## Cette syntaxe de boucle accède à l'ensemble du dict en bouclant ## sur la liste de tuples .items(), en accédant à une paire (clé, valeur) ## à chaque itération. pour k, v dans dict.items() : print(k, '>', v) ## a > alpha o > omega g > gamma

Note stratégique : du point de vue des performances, le dictionnaire est l'un de vos meilleurs outils, et vous devez l'utiliser partout où vous le pouvez comme moyen simple d'organiser les données. Par exemple, vous pouvez lire un fichier journal dans lequel chaque ligne commence par une adresse IP et stocker les données dans un dict en utilisant l'adresse IP comme clé et la liste des lignes où elle apparaît comme valeur. Une fois que vous avez lu l'intégralité du fichier, vous pouvez rechercher n'importe quelle adresse IP et voir instantanément sa liste de lignes. Le dictionnaire rassemble des données dispersées et en fait quelque chose de cohérent.

Formatage des dictées

L'opérateur % fonctionne de manière pratique pour remplacer les valeurs d'un dict dans une chaîne par leur nom :

h = {} h['word'] = 'garfield' h['count'] = 42 s = 'Je veux %(count)d copies de %(word)s' % h # %d pour int, %s for string # 'Je veux 42 copies de Garfield' # Vous pouvez également utiliser str.format(). s = 'Je veux {count:d} copies de {word}'.format(h)

Du

L'opérateur "del" effectue des suppressions. Dans le cas le plus simple, il peut supprimer la définition d'une variable, comme si cette variable n'avait pas été définie. Del peut également être utilisé sur des éléments ou des tranches de liste pour supprimer cette partie de la liste et pour supprimer des entrées d'un dictionnaire.

var = 6 del var # var plus ! list = ['a', 'b', 'c', 'd'] del list[0] ## Supprimer le premier élément de la liste[-2:] ## Supprimer les deux derniers éléments print(list) ## [' b'] dict = {'a':1, 'b':2, 'c':3} del dict['b'] ## Supprimer l'entrée 'b' print(dict) ## {'a':1 , 'c':3}

Des dossiers

La fonction open() s'ouvre et renvoie un descripteur de fichier qui peut être utilisé pour lire ou écrire un fichier de la manière habituelle. Le code f = open('name', 'r') ouvre le fichier dans la variable f, prêt pour les opérations de lecture, et utilise f.close() une fois terminé. Au lieu de « r », utilisez « w » pour écrire et « a » pour ajouter. La boucle for standard fonctionne pour les fichiers texte, parcourant les lignes du fichier (cela ne fonctionne que pour les fichiers texte, pas pour les fichiers binaires). La technique de la boucle for est un moyen simple et efficace de visualiser toutes les lignes d'un fichier texte :

# Fait écho au contenu d'un fichier texte f = open('foo.txt', 'rt', encoding='utf-8') pour la ligne dans f : ## parcourt les lignes du fichier print(line, end= '') ## end='' donc print n'ajoute pas de caractère de fin de ligne ## puisque 'line' inclut déjà la fin de ligne. f.close()

La lecture d'une ligne à la fois présente l'avantage que tous les fichiers n'ont pas besoin de tenir en mémoire en même temps - pratique si vous souhaitez consulter chaque ligne d'un fichier de 10 Go sans utiliser 10 Go de mémoire. La méthode f.readlines() lit l'intégralité du fichier en mémoire et renvoie son contenu sous forme de liste de ses lignes. La méthode f.read() lit le fichier entier en une seule chaîne, ce qui peut être un moyen pratique de traiter le texte en une seule fois, comme avec les expressions régulières que nous verrons plus tard.

Pour l'écriture, la méthode f.write(string) est le moyen le plus simple d'écrire des données dans un fichier de sortie ouvert. Ou vous pouvez utiliser "print" avec un fichier ouvert comme "print(string, file=f)".

Fichiers Unicode

Pour lire et écrire des fichiers codés en Unicode, utilisez un mode « t » et spécifiez explicitement un encodage :

avec open('foo.txt', 'rt', encoding='utf-8') as f: for line in f: # ici la ligne est une chaîne *unicode*avec open('write_test', encoding='utf-8 ', mode='wt') as f: f.write('\u20ACunicode\u20AC\n') # €unicode€ # AKA print('\u20ACunicode\u20AC', file=f) ## qui ajoute automatiquement la fin ='\n'

Exercice de développement incrémental

En construisant un programme Python, n'écrivez pas le tout en une seule étape. Au lieu de cela, identifiez simplement un premier jalon, par ex. "Eh bien, la première étape consiste à extraire la liste de mots." Écrivez le code pour atteindre ce jalon et imprimez simplement vos structures de données à ce stade, puis vous pourrez effectuer un sys.exit(0) afin que le programme ne s'exécute pas dans ses parties non terminées. Une fois que le code du jalon fonctionne, vous pouvez travailler sur le code du prochain jalon. Être capable de consulter l'impression de vos variables dans un état peut vous aider à réfléchir à la manière dont vous devez transformer ces variables pour passer à l'état suivant. Python est très rapide avec ce modèle, vous permettant d'apporter une petite modification et d'exécuter le programme pour voir comment il fonctionne. Profitez de ce délai d’exécution rapide pour construire votre programme par petites étapes.

Exercice : wordcount.py

En combinant tout le matériel de base de Python - chaînes, listes, dictionnaires, tuples, fichiers - essayez le résuménombre de mots.pyfaire de l'exercice dans leExercices de base.

Dicté et fichier Python | Éducation Python | Google pour les développeurs (2024)

References

Top Articles
Latest Posts
Article information

Author: Tuan Roob DDS

Last Updated:

Views: 6160

Rating: 4.1 / 5 (42 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Tuan Roob DDS

Birthday: 1999-11-20

Address: Suite 592 642 Pfannerstill Island, South Keila, LA 74970-3076

Phone: +9617721773649

Job: Marketing Producer

Hobby: Skydiving, Flag Football, Knitting, Running, Lego building, Hunting, Juggling

Introduction: My name is Tuan Roob DDS, I am a friendly, good, energetic, faithful, fantastic, gentle, enchanting person who loves writing and wants to share my knowledge and understanding with you.