Como criar uma lista de valores em uma compreensão de dicionário em Python

Tomando um exemplo muito simples de repetir uma frase e criar um dicionário que mapeia{x:y}, Ondex é uma chave que representa o comprimento das palavras ey é uma lista de palavras na frase que contêmx quantidade de letras

Entrada:

mywords = "May your coffee be strong and your Monday be short"

Saída esperada:

{2: ['be', 'be'], 3: ['May', 'and'], 4: ['your', 'your'], 5: ['short'], 6: ['coffee', 'strong', 'Monday']}

Aqui está uma tentativa que cria uma lista de valores, mas a substitui sempre:

{len(x):[x] for x in mywords.split()}
{2: ['be'], 3: ['and'], 4: ['your'], 5: ['short'], 6: ['Monday']}

É possível fazer isso em uma linha no Python?

questionAnswers(2)

yourAnswerToTheQuestion