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]