Это потому что здесь:
mydict = dict.fromkeys(mylist, [])
mydict
значения будут тот же объект []
, поэтому, когда вы добавите mydict[something]
, вы будете добавляя к тот же список , независимо от того, что something
.
Все значения являются одним и тем же объектом, вы добавляете к нему три числа => все значения отображаются как один и тот же список.
Чтобы избежать этого, назначьте новые списки для каждой клавиши:
mydict = {}
for item in mylist:
mydict.setdefault(item, []).append(item)
Или, вы знаете:
mydict = {key: [key] for key in mylist}