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