[Python-es] listas de cadenas de caracteres
Garikoitz Araolaza
gari en eibar.org
Mar Ago 27 12:27:21 CEST 2002
At 11:55 27/08/02, you wrote:
>hola!
>necesito ayuda para un sencillo programa q tengo q hacer en python y tengo
>dificultad. se trata simplemente, de, realizar una funcionq, a partir de
>una lista de cadena de caracteres,devuelva otra lista con aquellas cadenas
>que contengan el caracter mas frecuente de la lista inicial.
Hmmmm... ésta me la sé! ;-)
Pero como supongo que es un ejercicio de clase, te cuento más o menos cómo
se podría hacer y luego lo haces tú ;->
- Tienes que conseguir un diccionario de letras en las que se indique
cuántas veces aparezca cada letra. El resultado final de esta fase debe ser:
frecuencia -> {'a':34, 'b':23, 'c':12.... }
o algo así. Para ello, simplemente vas cogiendo letra a letra de cada
cadena de la lista y vas contándolos en tu diccionario:
if frecuencia.has_key[tu_letra]:
frecuencia[tu_letra] = frecuencia[tu_letra] + 1
else:
frecuencia[tu_letra] = 1
- Después buscas cuál es la letra con mayor frecuencia. Como no va a haber
demasiadas letras, (máximo 28...) pues quizás lo mejor es hacer:
letra_max = ''
for letra in frecuencia.keys():
if frecuencia[letra] > frecuencia[letra_max]:
letra_max = letra
- Después sólo tienes que ir buscando en todos los strings la letra
letra_max con la función mi_string.find(letra_max) y si el resultado es
mayor que -1, señal de que lo ha encontrado, con lo que basta con
agregarlos a tu lista final con lista_final.append(mi_string)
Seguro que hay formas más optimizadas de hacerlo, pero también serán más
liosas...
Saludos
_________________________________________
Garikoitz Araolaza
gari en eibar.org
Más información sobre la lista de distribución Python-es