Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Pryato en 24 Noviembre 2013, 17:06 pm



Título: [Python] - Script que devuelva que caracter se repite mas [Ayuda]
Publicado por: Pryato en 24 Noviembre 2013, 17:06 pm
Hola,
mi caso es el siguiente, tengo que hacer un script donde se le da un texto, como por ejemplo 'Hola amiga mia como estas?' Me retorne el caracter que mas se repite, que, en este caso, seria el caracter 'a'

Yo habia pensado en hacer una variable para cada caracter (incluido ?¿!"%&/><....)y su respectivo contador, pero claro, el script se me haria super largo y no quedaria compacto.

A ver si alguien me puede ayudar :)

Gracias.


Título: Re: [Python] - Script que devuelva que caracter se repite mas [Ayuda]
Publicado por: Eleкtro en 24 Noviembre 2013, 17:17 pm
Yo habia pensado en hacer una variable para cada caracter (incluido ?¿!"%&/><....)y su respectivo contador, pero claro, el script se me haria super largo y no quedaria compacto.

Una variable por cada caracter del alfabeto es totálmente innecesario y primitivo indiferéntemente del lenguaje del que se trate.

Hace mucho que no manejo Python, pero aquí tienes dos soluciones mejor que la propuesta de las variables:

Cita de: http://stackoverflow.com/questions/4131123/finding-the-most-frequent-character-in-a-string
There are many ways to do this shorter. For example, you can use the Counter class (in Python 2.7 or later):

Código
  1. import collections
  2. s = "helloworld"
  3. print(collections.Counter(s).most_common(1)[0])

If you don't have that, you can do the tally manually (2.5 or later has defaultdict):

Código
  1. d = collections.defaultdict(int)
  2. for c in s:
  3.    d[c] += 1
  4. print(sorted(d.items(), key=lambda x: x[1], reverse=True)[0])

Saludos!