Получить процент письма в словаре Python - PullRequest
0 голосов
/ 27 марта 2012

В данном словаре каждая клавиша представляет собой одну строчную букву, а каждое значение - это количество строчных слов, начинающихся с этой буквы. Параметр str представляет собой одну строчную букву. Основываясь на значениях в словаре, вернуть процент слов, начинающихся с этой буквы.

Примечание: используйте деление с плавающей точкой.

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(): 

Вот где я застрял. Я знаю, что мне нужно создать сумму значений для деления с плавающей запятой.

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

Ответы [ 5 ]

3 голосов
/ 27 марта 2012

Может быть, вы могли бы попробовать что-то вроде этого в вашей функции:

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)
1 голос
/ 27 марта 2012
def get_letter_percentage(dictionary, s):
   '''(dict of {str : int}, str) -> float'''

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

Процент - это количество вхождений, деленное на общее количество вхождений.Обратите внимание на умножение на 1,0, чтобы избежать деления int.

0 голосов
/ 27 марта 2012
def get_letter_percentage(stats, letter):
  return stats[letter] / (sum(stats.values()) + 0.0)
0 голосов
/ 27 марта 2012

Я придумал это:

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 голосов
/ 27 марта 2012

Если каждое значение является количеством слов для каждой буквы, то ваш код для поиска суммы будет:

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

Тогда это будет случай:

def get_letter_percentage(dictionary, letter):
    return dictionary[letter] / sum
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...