python - 计算属于一本字典一部分的字典数量
问题描述
假设我们有一个带有嵌套字典的字典列表:
list1=[{'name':"Jon", 'grades':[{'maths': 4, 'biology':5}]},
{'name':"Marry", 'grades':[{'maths': 5, 'biology':4, 'geography': 3}]}]
有没有办法在不使用循环的情况下仅在“等级”键中计算对数(键值)?所以这里的预期结果将是一个列表 [2,3]
解决方案
这是使用列表推导的一种方法。请注意,为了获取其中len
的值,grades
我们需要解包其值。或者,您可以简单地索引第一个位置:
[len(*i['grades']) for i in list1]
# [2, 3]
如果可能有没有grades
关键字的字典,您可以使用:
[len(*i.get('grades', 0)) for i in list1]
0
在不包含键的情况下设置默认值
推荐阅读
- css - Material Design React 响应式卡片
- c# - 如何在密码重置 b2c 上添加自定义步骤?
- javascript - ssi webshell 到节点 js webshell
- sql - 表中的一列为空,但该表中的另一列可以引用到另一个包含空列信息的表 - 如何?
- java - 如何设置相关实体(对象)的值
- apache-kafka - 如果 offsets.retention.minutes=2 和 cleanup.policy=compact,kafka 会删除提交的偏移量还是压缩它
- python - 我应该使用哪个版本的 ChromeDriver/Selenium?
- python - AssertionError:输入张量的大小和输入格式不同。- Tensorboard 添加图片
- laravel - foreach 循环在连接语句中迭代相同的值
- python - AttributeError: 'tuple' 对象没有属性 'tag_name' - 当我想从 Selenium POM 中选择下拉列表时