#1 Le 29/11/2020, à 18:23
- chris7522
Sous-classe defaultdict dans module collections(python)
Bonsoir a toutes et a tous,
Je ne comprends pas a quoi sert defaultdict . Concrètement ,comment fonctionne t-elle dans un exemple ?
Merci de votre aide .
Je ne comprends pas le resultat de ce bout de code par exemple :
tuples = [
...: (1, 2),
...: (2, 1),
...: (1, 3),
...: (2, 4),
...: ]
In [18]: from collections import defaultdict
...: resultat = defaultdict(list)
...:
...: for x, y in tuples:
...: resultat[x].append(y)
...:
...: for key, value in resultat.items():
...: print(key, value)
...:
1 [2, 3]
2 [1, 4]
Dernière modification par chris7522 (Le 29/11/2020, à 18:58)
Hors ligne
#2 Le 29/11/2020, à 19:43
- pingouinux
Re : Sous-classe defaultdict dans module collections(python)
Bonsoir,
Je ne connaissais pas non plus collections.defaultdict.
Il suffit d'ajouter quelques impressions dans le script pour voir comment les éléments sont regroupés.
$ cat defdic.py
tuples = [ (1, 2), (2, 1), (1, 3), (2, 4), ]
from collections import defaultdict
resultat = defaultdict(list)
print(resultat)
for x, y in tuples:
resultat[x].append(y)
print("x=%d y=%d %s"%(x,y,resultat))
print()
for key, value in resultat.items():
print(key, value)
$ python3 defdic.py
defaultdict(<class 'list'>, {})
x=1 y=2 defaultdict(<class 'list'>, {1: [2]})
x=2 y=1 defaultdict(<class 'list'>, {1: [2], 2: [1]})
x=1 y=3 defaultdict(<class 'list'>, {1: [2, 3], 2: [1]})
x=2 y=4 defaultdict(<class 'list'>, {1: [2, 3], 2: [1, 4]})
1 [2, 3]
2 [1, 4]
Hors ligne
#3 Le 29/11/2020, à 20:24
- chris7522
Re : Sous-classe defaultdict dans module collections(python)
Ok merci
Je ne comprends pas trop ce que fait :
for x, y in tuples:
resultat[x].append(y)
Hors ligne
#4 Le 29/11/2020, à 21:17
- chris7522
Re : Sous-classe defaultdict dans module collections(python)
C'est bon , je viens de comprendre !
J'ai le cerveau lent ...
J'ai lu que :
Defaultdict sert à créer un dictionnaire avec constructeur par défaut pour toute nouvelle clef.
Il affecte un constructeur d'objet appelé par défaut lorsque la clef est créée.
Dernière modification par chris7522 (Le 30/11/2020, à 06:47)
Hors ligne