Guide du débutant du dictionnaire Python

Comment utiliser dict

Les dictionnaires Python transmettent les clés et récupèrent les valeurs. Cependant, il faut noter qu'une erreur se produira si l'entrée correspondant à la clé spécifiée ne se trouve pas dans le dictionnaire.

keyerror.py


# -*- coding:utf-8 -*-
import traceback
dct = {"ham": 100, "jam": 300}  #Il n'y a pas d'oeuf.

try:
    #Puisqu'il n'y a pas d'oeuf, j'obtiens une KeyError.
    egg = dct["egg"]
except KeyError:
    traceback.print_exc()

Si vous n'êtes pas assuré que la clé que vous spécifiez existe dans le dictionnaire, vous pouvez la rechercher avec dict.get et vous n'obtiendrez pas d'erreur. Vous pouvez également spécifier une valeur alternative.

dictget.py


# -*- coding:utf-8 -*-
dct = {"ham": 100, "jam": 300}
print("dict.get => %s" % dct.get("egg", "orz"))

S'il est dans le dictionnaire, il récupère la valeur contenue, mais si ce n'est pas le cas, si vous voulez mettre une valeur arbitraire dans le dictionnaire, utilisez dict.setdefault.

dictsetdefault.py


# -*- coding:utf-8 -*-
dct = {"ham": 100, "jam": 300}

#Si vous souhaitez attribuer lorsqu'il n'y a pas d'entrée correspondant à la clé, définissez par défaut
egg = dct.setdefault("egg", "knuckle")
print("dict.get => %s, egg=%s" % (dct["egg"], egg))

#Puisque l'œuf existe déjà, il ne sera pas écrasé.
egg = dct.setdefault("egg", "mens")
print("dict.get => %s, egg=%s" % (dct["egg"], egg))

Defaultdict lors de la création d'un dictionnaire légèrement élaboré

Le dict par défaut est utile lors de la création d'un dictionnaire avec une structure compliquée. Passez une fabrique dans le constructeur qui crée une valeur alternative s'il n'y a pas d'entrée correspondant à la clé. Dans l'exemple suivant, un dictionnaire contenant des valeurs dans la liste est créé pour chaque clé.

defaultdictusage.py


# -*- coding:utf-8 -*-
from collections import defaultdict

alt = defaultdict(list)
keys = tuple("imagawa")
values = (1, 1, 2, 2, 3, 4, 5)

for k, v in zip(keys, values):
    alt[k].append(v)
print(alt)

Présentation du tuple nommé en plus des collections

Le defaultdict se trouve dans le module collections, mais il y a un autre namedtuple dans le module collections. Vous pouvez l'utiliser pour définir un objet qui est un tuple mais qui a également un accès aux attributs.

namedtupleusage.py


# -*- coding:utf-8 -*-
from collections import namedtuple

Role = namedtuple("Role", "user course")
roles = [Role(x, y) for x, y in ((45, 6), (52, 3))]

for role in roles:
    print("user=%s, course=%s" % (role.user, role.course))
    #Bien entendu, un accès en indice est également possible.
    assert role[0] is role.user and role[1] is role.course

Exemple de code

samplecode.py


# -*- coding:utf-8 -*-
import traceback


dct = {"ham": 100, "jam": 300}  #Il n'y a pas d'oeuf.

try:
    #Puisqu'il n'y a pas d'oeuf, j'obtiens une KeyError.
    egg = dct["egg"]
except KeyError:
    traceback.print_exc()


# dict.Si vous recherchez avec get, aucune erreur ne se produira. Vous pouvez également spécifier une valeur alternative.
print("dict.get => %s" % dct.get("egg", "orz"))

#Si vous souhaitez attribuer lorsqu'il n'y a pas d'entrée correspondant à la clé, définissez par défaut
egg = dct.setdefault("egg", "knuckle")
print("dict.get => %s, egg=%s" % (dct["egg"], egg))

#Puisque l'œuf existe déjà, il ne sera pas écrasé.
egg = dct.setdefault("egg", "mens")
print("dict.get => %s, egg=%s" % (dct["egg"], egg))


#Le dict par défaut est utile lors de la création d'un dictionnaire avec une structure compliquée.
from collections import defaultdict
alt = defaultdict(list)
keys = tuple("imagawa")
values = (1, 1, 2, 2, 3, 4, 5)
for k, v in zip(keys, values):
    alt[k].append(v)
print(alt)


#Tuple nommé namedtuple.
from collections import namedtuple
Role = namedtuple("Role", "user course")
roles = [Role(x, y) for x, y in ((45, 6), (52, 3))]
for role in roles:
    print("user=%s, course=%s" % (role.user, role.course))
    #Bien entendu, un accès en indice est également possible.
    assert role[0] is role.user and role[1] is role.course

Résultat d'exécution

result.txt


Traceback (most recent call last):
  File "samplecode.py", line 9, in <module>
    egg = dct["egg"]
KeyError: 'egg'
dict.get => orz
dict.get => knuckle, egg=knuckle
dict.get => knuckle, egg=knuckle
defaultdict(<type 'list'>, {'i': [1], 'a': [2, 3, 5], 'm': [1], 'w': [4], 'g': [2]})
user=45, course=6
user=52, course=3

Recommended Posts

Guide du débutant du dictionnaire Python
Guide du débutant Python (fonctions)
Guide du débutant Python (Introduction)
Guide du débutant Python (Variations / Tableaux)
Dictionnaire Python
Dictionnaire [Python]
Dictionnaire Python
Python pour les super débutants Super débutants Python # dictionnaire type 2
Anaconda: Guide du débutant
[Python] Mémo sur le dictionnaire
Dictionnaire [Python] (hachage)
Les débutants pratiquent Python
Note du débutant Python
Cours de base Python (7 dictionnaire)
Les débutants en Python organisent des tris de tas
Les débutants en Python organisent des tri rapides
Python débutant touche Pytorch (3)
Manuel python pour les débutants
Mémo de type Liste / Dictionnaire Python3
Python débutant touche Pytorch (1)
Python débutant touche Pytorch (2)
OpenCV pour les débutants en Python
Liste Python, pour instruction, dictionnaire
Créer un dictionnaire en Python
fonction de mémorandum python pour débutant
Construction de l'environnement Python3 (pour les débutants)
3 raisons pour lesquelles les débutants en programmation devraient commencer avec Python
Python> dictionnaire / collections> defaultdict () / Counter ()
Python #function 2 pour les super débutants
Les débutants en Python organisent des sortes de bulles
Ruby, Guide d'installation du module Python
Grammaire de base Python pour les débutants
Évitez KeyError dans le dictionnaire python
Pandas 100 coups pour les débutants en Python
Python #function 1 pour les super débutants
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Python> dictionnaire> get ()> valeur facultative
Notes sur Python et les types de dictionnaire
Python
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Extension du dictionnaire python par argument
Remplacez la valeur du dictionnaire par Python> update ()
Résumé de l'apprentissage automatique par les débutants de Python
Python #index pour les super débutants, tranches
Mémo d'automatisation de saisie par Python débutant
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Fonction Python #len pour les super débutants
Grammaire de base du système Python3 (dictionnaire)
Web scraping pour les débutants en Python (1)
# 2 Les débutants en Python défient AtCoder! ABC085C --Otoshidama
Exécutez unittest en Python (pour les débutants)
Mémorandum du débutant Mouvement "isdigit" Python
Web scraping pour les débutants en Python (4) -1
Python #Hello World pour les super débutants
les débutants en python ont essayé de le découvrir
Apprenez les bases de Python ① Débutants élémentaires
Python> dictionnaire> values ()> Obtenir toutes les valeurs à l'aide de values ()
INSÉRER dans MySQL avec Python [Pour les débutants]
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
Convertir Python> séquence de deux valeurs en dictionnaire