J'ai trouvé ce problème de programmation lors de l'affichage d'un travail sur SO. Je pensais que c'était assez intéressant et en tant que programmeur Python débutant, j'ai essayé de m'y attaquer. Cependant, je pense que ma solution est assez ... désordonnée ... quelqu'un peut-il faire des suggestions pour l'optimiser ou le rendre plus propre? Je sais que c'est assez trivial, mais je me suis amusé à l'écrire. Note: Python 2.6Recherche du caractère le plus fréquent dans une chaîne
Le problème:
Ecrire un pseudo-code (ou code réel) pour une fonction qui prend une chaîne et renvoie la lettre qui apparaît le plus dans cette chaîne.
Ma tentative:
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")
Sortie:
>>>
('l', 3)
exemple Mise à jour:
find_max_letter_count("balloon")
>>>
('l', 2)
('o', 2)
Note secondaire: vous devriez lire (http://www.python.org/dev/peps/pep-0008/) [PEP 8], qui documente le style de codage Python recommandé. Les méthodes devraient être dans snake_case plutôt que mixedCase. –
duplicata possible de [Comment trouver les éléments les plus communs d'une liste?] (Http://stackoverflow.com/questions/3594514/how-to-find-most-common-elements-of-a-list) – kennytm
duplicata possible de [élément Python le plus commun dans une liste] (http://stackoverflow.com/questions/1518522/python-most-common-element-in-a-list) – nawfal