[Python] - Script que devuelva que caracter se repite mas [Ayuda]

Iniciado por Pryato, 24 Noviembre 2013, 17:06 PM

0 Miembros y 1 Visitante están viendo este tema.

Pryato

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.

Eleкtro

#1
Cita de: Pryato en 24 Noviembre 2013, 17:06 PMYo 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-stringThere are many ways to do this shorter. For example, you can use the Counter class (in Python 2.7 or later):

Código (python) [Seleccionar]
import collections
s = "helloworld"
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 (python) [Seleccionar]
d = collections.defaultdict(int)
for c in s:
   d[c] += 1
print(sorted(d.items(), key=lambda x: x[1], reverse=True)[0])

Saludos!