2012-03-27 13 views
0

Im angegebenen Wörterbuch ist jeder Schlüssel ein einzelner Kleinbuchstabe und jeder Wert ist die Anzahl der Kleinbuchstaben, die mit diesem Buchstaben beginnen. Der Parameter str ist ein einzelner Kleinbuchstabe. Berücksichtigen Sie anhand der Werte im Wörterbuch den Prozentsatz der Wörter, die mit diesem Buchstaben beginnen.Prozentsatz eines Buchstabens im Python-Wörterbuch abrufen

Hinweis: Verwenden Sie Gleitkomma Division.

def get_letter_percentage(dictionary, s): 
    '''(dict of {str : int}, str) -> float''' 

# Start with a counter for the sum of the values. 
count = 0 
# And then look at the key and value of the dictionary 
for (key, value) in dictionary.items(): 

Hier ist ich stecken geblieben. Ich weiß, dass ich eine Summe der Werte erstellen muss, um eine Gleitkommadivision durchzuführen.

# guessing it is something along these lines 
count = len(values) #?? 
+1

diese Hausaufgaben? – jgritty

Antwort

3

Vielleicht Sie könnten so etwas in Ihrer Funktion versuchen:

dictionary = {'a': 5, 'b': 8, 'c':15} 
sum = 0 
for (key, value) in dictionary.items(): sum += value 
percentage = dictionary['a']/(sum + 0.0) 
print "percentage of '%s' is %.2f %%" % ('a' , percentage*100) 
+0

Nur realisiert, dass ich einen float zurückgeben muss, so werde ich nur die Druckaussage loswerden – Who8daPie

0

Wenn jeder Wert die Anzahl der Wörter für jeden Buchstaben, dann würde die Summe finden Code sein:

sum = 0 
for (key, value) in dictionary: 
    sum = sum + value 

Dann ist es ein Fall von:

def get_letter_percentage(dictionary, letter): 
    return dictionary[letter]/sum 
+0

Danke für die Hilfe – Who8daPie

1
def get_letter_percentage(dictionary, s): 
    '''(dict of {str : int}, str) -> float''' 

    return dictionary[s] * 1.0/sum(dictionary.values()) 

Der Prozentsatz ist die Anzahl der Vorkommen dividiert durch die Gesamtzahl der Vorkommen. Beachten Sie die Multiplikation mit 1.0, um eine Division zu vermeiden.

0

kam ich mit auf den Punkt:

mydict = {"a":5, "b":1, "c":4, "d":3, "e":6} 


def get_letter_percentage(dictionary, s): 
    sum = 0 
    for key in dictionary: 
     sum += dictionary[key] 

    return float(dictionary[s])/float(sum) 

print get_letter_percentage(mydict, "b") 
+0

Danke für die Antwort! – Who8daPie

0
def get_letter_percentage(stats, letter): 
    return stats[letter]/(sum(stats.values()) + 0.0) 
Verwandte Themen