首页 > 解决方案 > 计算属于一本字典一部分的字典数量

问题描述

假设我们有一个带有嵌套字典的字典列表:

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

有没有办法在不使用循环的情况下仅在“等级”键中计算对数(键值)?所以这里的预期结果将是一个列表 [2,3]

标签: pythonlistdictionary

解决方案


这是使用列表推导的一种方法。请注意,为了获取其中len的值,grades我们需要解包其值。或者,您可以简单地索引第一个位置:

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

如果可能有没有grades关键字的字典,您可以使用:

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

0在不包含键的情况下设置默认值


推荐阅读