Uma solução mais simples seria migrar para o Python 3, que já vem com
UTF-8 como padrão em vez de ascii.
Agora uma explicação mais técnica. No Python existe um método chamado
__str__ que converte qualquer objeto para string (ou pelo menos tenta),
normalmente usada como str(variável) por questões de performance. Porém
em alguns casos o método __repr__ é chamado no lugar, já que seria uma
representação em texto do objeto.
Um teste que pode ser feito no console interativo:
>>> a = 'ção'
>>> a
'\xc3\xa7\xc3\xa3o'
>>> print a
ção
Isso também acontece dentro de dicionários, mesmo chamando o print:
>>> d = {'ção': 1}
>>> d
{'\xc3\xa7\xc3\xa3o': 1}
>>> print d
{'\xc3\xa7\xc3\xa3o': 1}
Porém isso não quer dizer que a codificação está incorreta, apenas que
estão mostrando a representação dos bytes e não os caracteres em si.
Trabalhando de outra forma temos:
>>> for k, v in d.items(): print k, v
...
ção 1
No Python 3 muda um pouco a sintaxe, porém como ele trabalha com unicode
por padrão, esse efeito não acontece:
>>> d = {'ção': 1}
>>> d
{'ção': 1}
>>> print(d)
{'ção': 1}
Mais informações na documentação oficial
(
https://docs.python.org/2/reference/datamodel.html#object.__repr__),
onde fala que essa representação é tipicamente utilizada em debbug, e
não na aplicação em si.
Em 05-10-2015 14:58, Bruno Santos escreveu:
> Olá Eduardo,
>
> Muito obrigado, cara!
>
> Deu certinho, já fiz a modificação aqui. Agora é trabalhar pra ajeitar a
> codificação do texto que veio atrapalhada.
>
> Ficou assim:
>
> frequencia = []
> for nome, cidade,textoin lista_sudeste:
> for palavrain texto.split():
> > <mailto:
python-brasi...@googlegroups.com <javascript:>>.
> <mailto:
python-brasi...@googlegroups.com>.