dict[key] = val для заполнения массива это откровенный Python или Js стиль. Это работает только по тому, что при отсутствии найденного елемента map будет конструировать пустой, который и будет вами зааплаен значением. Это не правильный подход для работы с мапой, по тому, что не дает вам четкого понимания, был ли уже создан данный елемент и вы его перезаписываете или же вы просто создаете новый.