sobre listas

Chema Cortés ch3m4 en ch3m4.org
Mar Ago 19 10:16:59 CEST 2003


Sonia escribió:

> hola!
> si tengo una lista de palabras
> como puedo saber la letra mas frecuente q hay entre todas las palabras
>  
> con solo palabras esta claro:
> for palabra in lista:
> ....
>  
> pero para las letras,supongo q seria:
>  
> for palabra in lista:
>     for letra in palabras:
>         #creo otra lista_frecuencia y digo ahora  for letra in 
> lista_frecuencia???
>         #y pongo todas las letras iguales en una lista, depues las 
> cuento, guardo el numero y pongo la lista en [] para otra letra??
>         #es este un camino correcto??

Vas bien encaminada, pero te falta pensar mejor cómo almacenar los 
resultados. En lugar de ir guardando las letras iguales en otra lista, 
lo mejor es que vayas contando. El problema conceptual de este ejercicio 
es que no te basta con un sólo contador, sino que tendrás que utilizar 
una lista de ellos.

Suponiendo que las palabras sólo usan ascii, tendrás que utilizar una 
lista de 256 contadores:

lista_frecuencia=[0]*256

donde lista_frecuencia[i] será la frecuencia de la letra de código ascii 'i'

(te dejo que lo resuelvas por tí misma)


Como corolario, hay que decir que en python se pueden utilizar unicodes, 
y que no bastaría con una lista de 256 elementos de contadores. La 
solución pasaría por utilizar diccionarios en lugar de listas. Lo dejo 
como ejercicio.




Más información sobre la lista de distribución Python-es