sobre listas

Sonia siosss en ono.com
Mie Ago 20 17:20:15 CEST 2003


demasiado para mi. en mi temario no entra ni map, ni count,  ni index ni
nada de eso. lo tendre q hacer po metodo tradicional (y largo)
ahora lo intento!


----- Original Message -----
From: Chema Cortés <ch3m4 en ch3m4.org>
To: <python-es en aditel.org>
Sent: Tuesday, August 19, 2003 9:30 AM
Subject: [Python-es] Re: sobre listas


> Chema Cortés escribió:
>
> > Una solución algo más bestia, pero que también valdría para unicodes:
> >
> > frec = [ todo.count(c) for c in todo ]
> > letra = todo[frec.index(max(frec))]
>
> Tomando un café me ha venido la inspiración de algunas versiones "menos
> bestias", válidas para unicodes. Ya advierto que algunas son bastantes
> complicadas:
>
> listapal = ['hola','mundo','otra','vez',u'\N{EURO SIGN}'*10]
> todo = ''.join(listapal)
>
> ####
> #versión 1
>
> keys=dict.fromkeys(todo).keys()  #nuevo en python 2.3
> frec=[ todo.count(k) for k in keys ]
> letra=keys[frec.index(max(frec))]
>
> ####
> #versión 2
>
> D=dict.fromkeys(todo)  #nuevo en python 2.3
> for k in D.keys():
>      D[k]=todo.count(k)
> letra=[ k for k,v in D.items() if v==max(D.values()) ][0]
>
> ####
> #versión 3, que funciona también en python 2.2.x
>
> keys=[]
>
> frec=[ todo.count(c) for c in todo
>         if c not in keys and not keys.append(c) ]
>
> letra=keys[frec.index(max(frec))]
>
> ####
> #versión 4 "Absurda", pero va también en python 2.2.2
>
> keys=[ c for c in todo if c not in locals()['_[1]'].__self__ ]
> frec=[ todo.count(k) for k in keys ]
> letra=keys[frec.index(max(frec))]
>
> # Explicación:
> # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/204297
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es




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