Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

"For in" da frequência retorna apenas uma letra!

Boa tarde galera

Li e reli o que o Guilherme escreveu umas 500x e verificando no meu código, aparentemente está tudo certo, mas quando eu executo ele, só me retorna a letra "é", e não a frequência de todos os caracteres como no vídeo. Alguém consegue identificar o que eu estou fazendo de errado?

contando_texto1 = Counter(texto1.lower())
print(contando_texto1)

total_de_carac = sum(contando_texto1.values())
print(total_de_carac)

for letra, frequencia in contando_texto1.items():
        mostra_frequencia = (letra, frequencia / total_de_carac)
print(mostra_frequencia)
3 respostas

Engraçado que quando mudei para o passo seguinte, ele mostra normal....

mostra_frequencia = [(letra, frequencia / total_de_carac) for letra, frequencia in contando_texto1.items()]

print(mostra_frequencia)

Não sei mesmo o que pode ter sido.

solução!

Olá Eduardo, tudo bem? Espero que sim!

O que estava incorreto no código era somente a indentação do print(mostra_frequencia). Ele estava fora do loop for e por isso só executava uma única vez após todo o for ser executado.

Para consertar, basta colocar o print dentro do for:

contando_texto1 = Counter(texto1.lower())
print(contando_texto1)

total_de_carac = sum(contando_texto1.values())
print(total_de_carac)

for letra, frequencia in contando_texto1.items():
        mostra_frequencia = (letra, frequencia / total_de_carac)
        print(mostra_frequencia)

Bons estudos!

Valeu!