Cómo crear una lista de valores en un diccionario de comprensión en Python

Tomando un ejemplo muy simple de recorrer una oración y crear un diccionario que mapee{x:y}, dóndex es una clave que representa la longitud de las palabras yy es una lista de palabras en la oración que contienex cantidad de letras

Entrada:

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

Rendimiento esperado:

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

Aquí hay un intento que crea una lista de valores pero la sobrescribe cada vez:

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

¿Es posible hacer esto en una línea en Python?

Respuestas a la pregunta(2)

Su respuesta a la pregunta