2017-01-24 3 views
0

Мне нужно написать программу, которая подсчитывает количество значений в словаре.Подсчет количества значений в словаре

Например, скажем, у меня есть этот словарь.

{'a': ['aardvark'], 'b': ['baboon'], 'c': ['coati'], 'd': ['donkey', 'dog', 'dingo']} 

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

Когда я использую этот код, я получаю 4.

def how_many(aDict): 

    sum = len(aDict.values()) 

    return sum 

animals = {'a': ['aardvark'], 'b': ['baboon'], 'c': ['coati'], 'd': ['donkey', 'dog', 'dingo']} 

print(how_many(animals)) 

Я новичок в Python, так, пожалуйста, ничего не трудно сделать.

ответ

2

Вы можете использовать sum на экспрессию в генератора для расчета len каждого значения, как:

>>> my_dict = {'a': ['aardvark'], 'b': ['baboon'], 'c': ['coati'], 'd': ['donkey', 'dog', 'dingo']} 

#  returns list of all values v 
>>> sum(len(v) for v in my_dict.values()) 
6 

Альтернативно, вы можете также использовать map с sum для достижения этой цели, как:

>>> sum(map(len, my_dict.values())) 
6 
2

Вам необходимо суммировать длины каждого из элементов в aDict.values():

>>> aDict = {'a': ['aardvark'], 'b': ['baboon'], 'c': ['coati'], 'd': ['donkey', 'dog', 'dingo']} 
>>> sum(len(item) for item in aDict.values()) 
6 
Смежные вопросы