假设我们有一个带有嵌套词典的词典列表:
list1=[{'name':"Jon", 'grades':[{'maths': 4, 'biology':5}]},
{'name':"Marry", 'grades':[{'maths': 5, 'biology':4, 'geography': 3}]}]
有没有一种方法,不使用循环,仅在“等级”键内计算对数(键值)? 因此,这里的预期结果将是列表[2,3]
答案 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)