Ich bin auf dieses Programmierproblem gestoßen, als ich mir eine Stellenausschreibung auf SO ansah. Ich fand es ziemlich interessant und als Python-Anfänger habe ich versucht, es zu lösen. Allerdings habe ich das Gefühl, dass meine Lösung ziemlich...unordentlich ist...kann mir jemand Vorschläge machen, wie ich sie optimieren oder sauberer machen kann? Ich weiß, es ist ziemlich trivial, aber es hat mir Spaß gemacht, es zu schreiben. Anmerkung: Python 2.6
Das Problem:
Schreiben Sie Pseudocode (oder tatsächlichen Code) für eine Funktion, die eine Zeichenkette aufnimmt und den Buchstaben zurückgibt, der in dieser Zeichenkette am häufigsten vorkommt.
Mein Versuch:
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)
Aktualisiertes Beispiel:
find_max_letter_count("balloon")
>>>
('l', 2)
('o', 2)