Есть ли более простой способ извлечь последнее значение словаря?

#python-3.x #list #dictionary

#python-3.x #Список #словарь

Вопрос:

Итак, мне было поручено создать функцию с использованием python, которая возвращает, сколько значений есть в словаре, который содержит ТОЛЬКО списки. Примером такого словаря может быть:

 animals = { 'a': ['alpaca','ardvark'], 'b': ['baboon'], 'c': ['coati']}
 

Значения внутри списка также учитываются в общих значениях, возвращаемых функцией, что означает, что она должна вернуть 4. Это функция, которую я создал:

 def how_many(aDict):
'''
aDict: A dictionary, where all the values are lists.

returns: int, how many values are in the dictionary.
'''
numValues = 0;
while aDict != {}:
    tupKeyValue = aDict.popitem();
    List = tupKeyValue[1];
    numValues  = len(List);

return numValues;
 

Итак, мне было интересно, есть ли способ извлечь последнее значение словаря без popitem(), который извлекает пару ключ-значение. Просто пытаюсь сделать это как можно проще.

Ответ №1:

Поскольку вы не используете ключи dictionary, возможно, вы могли бы просто использовать values() вместе с sum() :

 def how_many(d):
    return sum(len(v) for v in d.values())

animals = {'a': ['alpaca', 'ardvark'], 'b': ['baboon'], 'c': ['coati']}
print(how_many(animals))
 

Вывод:

 4