Adicionando mais de um valor ao dicionário ao percorrer a string

Ainda super novo no Python 3 e encontrei um problema ... Estou tentando criar uma função que retorna um dicionário com as chaves sendo o comprimento de cada palavra e os valores sendo as palavras na string.

Por exemplo, se minha string for: "Os cães correm rapidamente para o parque", meu dicionário deve retornar{2: ['to'] 3: ['The', 'run', 'the'], 4: ['dogs', 'park], 7: ['quickly', 'forward']}

O problema é que, quando percorro os itens, ele anexa apenas uma das palavras da sequência.

def word_len_dict(my_string):
    dictionary = {}
    input_list = my_string.split(" ")
    unique_list = []
    for item in input_list:
        if item.lower() not in unique_list:
            unique_list.append(item.lower())
    for word in unique_list:
        dictionary[len(word)] = []
        dictionary[len(word)].append(word)
    return (dictionary)

print (word_len_dict("The dogs run quickly forward to the park"))

O código retorna

{2: ['to'], 3: ['run'], 4: ['park'], 7: ['forward']}

Alguém pode me apontar na direção certa? Talvez não esteja me dando a resposta livremente, mas o que preciso examinar a seguir em termos de adição das palavras ausentes à lista. Eu pensei que anexá-los à lista faria isso, mas não é.

Obrigado!

questionAnswers(7)

yourAnswerToTheQuestion