continuo con las listas de cadenas de caracteres
Chema Cortés
chemacortes en wanadoo.es
Vie Ago 30 20:36:07 CEST 2002
[[Redirigo a la lista un correo de Sonia que no ha podido enviar]]
------------------------------------------------------------------
From: <sonia-t en ono.com>
To: python-es en aditel.org
Subject: Re:[Python-es] RE: continuo con las listas de cadenas de caracteres
(tengo un problemilla con mi correo)
a ver! tengo 2 versiones del programa de la lista de cadenas de
caracteres y ninguno
me funciona. no se puede hacer sin utilizar el get??
aki os pongo los 2 errores de ejecucion. a ver si hay solucion!
Las palabras a mirar son:
['pepe', 'dale', 'amigo', 'ernesto']
Traceback (innermost last):
File "A:\def.py", line 28, in ?
res = contar(lista)
File "A:\def.py", line 10, in contar
frecuencia[letra] = frecuencia.get(letra,0)+1 #cuenta todas las
letras
AttributeError: get
Las lista inicial es:
['pepe', 'dale', 'amigo', 'ernesto']
Traceback (innermost last):
File "A:\pra4.py", line 35, in ?
res = pra4(lista)
File "A:\pra4.py", line 9, in ex
frecuencia[letra]=frecuencia[letra,0]+1
TypeError: sequence index must be integer
-------Mensaje original-------
De: python-es en aditel.org
Fecha: viernes, 30 de agosto de 2002 09:28:41
A: python-es en aditel.org
Asunto: Re:[Python-es] RE: continuo con las listas de cadenas de
caracteres
> o mejor aún, una de las propuestas por Chema ("achicada" en
> funcionalidad para seguir con el mismo ejemplo):
>
> m=max(frecuencia.values())
> letra_max=[k for k,v in frecuencia.items() if v==m][0]
> # me quedo solo con una --------^^^
Pues para hacerlo así tenía otras "propuestas" que desistí de poner por
ser demasiado "bestias" y que lo hacían todo en una sóla línea usando
la "reducción":
letra_max=reduce(lambda a,b: (a,b)[frecuencia[a]<frecuencia[b]],
frecuencia.keys())
una variante, algo más legible:
letra_max=reduce(lambda a,b: frecuencia[a]>=frecuencia[b] and a or b,
frecuencia.keys())
Como he dicho, son demasiado "bestias". Como consejo para seguir
manteniendo la salud mental, recomiendo utilizar cualquiera de las
otras propuestas :-)
Saludos,
--
Chema Cortes (chemacortes en wanadoo.es)
Más información sobre la lista de distribución Python-es