计算字典中的值的数量

时间:2017-01-24 22:44:42

标签: python dictionary

我需要编写一个计算字典中值的数量的程序。

例如,假设我有这本字典。

{'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 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

您需要将aDict.values()中每个元素的长度相加:

>>> aDict = {'a': ['aardvark'], 'b': ['baboon'], 'c': ['coati'], 'd': ['donkey', 'dog', 'dingo']}
>>> sum(len(item) for item in aDict.values())
6