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]
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]
Ok merci
Je ne comprends pas trop ce que fait :
for x, y in tuples: 
    resultat[x].append(y) 
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.