подсчитать количество словарей, которые являются частью одного словаря - PullRequest
0 голосов
/ 13 июня 2019

Предположим, у нас есть список словарей с вложенными словарями:

list1=[{'name':"Jon", 'grades':[{'maths': 4, 'biology':5}]},
       {'name':"Marry", 'grades':[{'maths': 5, 'biology':4, 'geography': 3}]}]

есть ли способ, без использования цикла, подсчитывать количество пар (ключ-значение) только в ключе 'grades'?Таким образом, ожидаемый результат здесь будет список [2,3]

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Предлагаю следующее решение.

[len(i['grades'][0]) for i in list1 if 'grades' in i]

Я проверяю наличие ключевых слов в словаре.

enter image description here

0 голосов
/ 13 июня 2019

Вот один из способов использования списка.Обратите внимание, что для получения len значений в grades нам нужно распаковать его значения.В качестве альтернативы вы могли бы просто индексировать по первой позиции:

[len(*i['grades']) for i in list1]
# [2, 3]

Если бы были словари без ключа grades, вы могли бы использовать:

[len(*i.get('grades', 0)) for i in list1]

, который устанавливает значение по умолчаниюзначение 0 в случае, если ключ не содержится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...