Oi amigo, obrigado pela resposta!
Acho que não expliquei direito, deixa eu tentar!!!
Eu consigo fazer list comprehension e dict comprehension para fazer python contar a quantidade de letras em cada palavra na frase.
frase = str(input("frase:")).lower()
palavras = [palavra for palavra in frase.split()]
tamanho = [len(palavra) for palavra in frase.split()]
resultado = {k:v for k,v in zip(palavras,tamanho)}
print(resultado)
Imagina a frase: eu gosto de programar em python
frase:eu gosto de programar em python
{'eu': 2, 'gosto': 5, 'de': 2, 'programar': 9, 'em': 2, 'python': 6}
Saiu tudo bem, mas o problema tá no código que eu postei na pergunta.
Eu queria o resultado fosse:
frase:eu gosto de programar em python
{'eu': 2, 'gosto': 5, 'de': 2, 'programar': 9, 'em': 2, 'python': 6}
{'eu': [e,u], 'gosto': [g,o,s,t,o], 'de': [d,e], 'programar': [p,r,o,g,r,a,m,a,r], 'em': [e,m], 'python': [p,y,t,h,o,n]}
No código que eu postei na pergunta eu detalhei cada passo para que mesmo entendesse a lógica, depois vou colocar em comprehension. As variáveis "contp" e "contl" são, respectivamente, para contar a posição da string dentro da lista e da letra na respectiva string.
Quando a string "eu" (contp = 1) acabasse (contl = 2), o contador de letras (contl) zeraria e assim recomeçaria para "gosto" (contp = 2).
Meu intuito seria fazer o programa reconhecer que já pode passar para a próxima string e assim alocar cada letra separada em um lista/tupla específica para ficar como eu citei acima.
Eu acho que tá muito "truncado", estou complicando muito - sou iniciante.