计算一本词典的一部分的数字词典

时间:2019-06-13 20:26:55

标签: python list dictionary

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

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

有没有一种方法,不使用循环,仅在“等级”键内计算对数(键值)? 因此,这里的预期结果将是列表[2,3]

2 个答案:

答案 0 :(得分:0)

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

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

如果词典中没有使用grades键,则可以使用:

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

在不包含密钥的情况下,将默认值设置为0

答案 1 :(得分:0)

我提出以下解决方案。

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

我检查关键成绩在词典中。

enter image description here