Encontré este problema de programación al buscar un trabajo publicado en SO. Pensé que era bastante interesante y, como principiante en el programador de Python, traté de abordarlo. Sin embargo, creo que mi solución es bastante ... desordenada ... ¿alguien puede hacer alguna sugerencia para optimizarla o hacerla más limpia? Sé que es bastante trivial, pero me divertí escribiéndolo. Nota: Python 2.6Encontrar el carácter más frecuente en una cadena
El problema:
escritura pseudo-código (o código real) para una función que toma en una cadena y devuelve la letra que aparece la mayor cantidad en esa cadena.
Mi intento:
import string
def find_max_letter_count(word):
alphabet = string.ascii_lowercase
dictionary = {}
for letters in alphabet:
dictionary[letters] = 0
for letters in word:
dictionary[letters] += 1
dictionary = sorted(dictionary.items(),
reverse=True,
key=lambda x: x[1])
for position in range(0, 26):
print dictionary[position]
if position != len(dictionary) - 1:
if dictionary[position + 1][1] < dictionary[position][1]:
break
find_max_letter_count("helloworld")
Salida:
>>>
('l', 3)
ejemplo Actualizado:
find_max_letter_count("balloon")
>>>
('l', 2)
('o', 2)
Nota incidental: debe leer [PEP 8] (http://www.python.org/dev/peps/pep-0008/), que documenta el estilo de codificación de Python recomendado. Los métodos deben estar en snake_case en lugar de mixedCase. –
posible duplicado de [¿Cómo encontrar los elementos más comunes de una lista?] (Http://stackoverflow.com/questions/3594514/how-to-find-most-common-elements-of-a-list) – kennytm
posible duplicado de [elemento más común de Python en una lista] (http://stackoverflow.com/questions/1518522/python-most-common-element-in-a-list) – nawfal